亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

通過抓取淘寶評論為例講解Python爬取ajax動態生成的數據(經典)

系統 1585 0

在學習python的時候,一定會遇到網站內容是通過 ajax動態請求、異步刷新生成的json數據 的情況,并且通過python使用之前爬取靜態網頁內容的方式是不可以實現的,所以這篇文章將要講述如果在python中爬取ajax動態生成的數據。

至于讀取靜態網頁內容的方式,有興趣的可以查看本文內容。

這里我們以爬取淘寶評論為例子講解一下如何去做到的。

這里主要分為了四步:

一 獲取淘寶評論時,ajax請求鏈接(url)

二 獲取該ajax請求返回的json數據

三 使用python解析json數據

四 保存解析的結果

步驟一:

獲取淘寶評論時,ajax請求鏈接(url)這里我使用的是Chrome瀏覽器來完成的。打開淘寶鏈接,在搜索框中搜索一個商品,比如“鞋子”,這里我們選擇第一項商品。

?

然后跳轉到了一個新的網頁中。在這里由于我們需要爬取用戶的評論,所以我們點擊累計評價。

?

然后我們就可以看到用戶對該商品的評價了,這時我們在網頁中右擊選擇審查元素(或者直接使用F12打開)并且選中Network選項,如圖所示:

通過抓取淘寶評論為例講解Python爬取ajax動態生成的數據(經典)_第1張圖片 ?

我們在用戶評論中,翻到底部 點擊下一頁或者第二頁,我們在Network中看到動態添加了幾項,我們選擇開頭為list_detail_rate.htm?itemId=35648967399的一項。

通過抓取淘寶評論為例講解Python爬取ajax動態生成的數據(經典)_第2張圖片 ?

然后點擊該選項,我們可以在右邊選項框中看到有關該鏈接的信息,我們要復制Request URL中的鏈接內容。

?

我們在瀏覽器的地址欄中輸入剛才我們獲得url鏈接,打開后我們會發現頁面返回的是我們所需要的數據,不過顯得很亂,因為這是json數據。

通過抓取淘寶評論為例講解Python爬取ajax動態生成的數據(經典)_第3張圖片 ?

二 獲取該ajax請求返回的json數據

下一步,我們就要獲取url中的json數據了。我所使用的python編輯器是pycharm,下面看一下python代碼:

            
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import requests
url='https://rate.tmall.com/list_detail_rate.htm?itemId=35648967399&spuId=226460655&sellerId=1809124267?=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=&ua=011UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5OcktyT3ZCf0B9Qn9GeC4%3D%7CU2xMHDJ7G2AHYg8hAS8WKAYmCFQ1Uz9YJlxyJHI%3D%7CVGhXd1llXGVYYVVoV2pVaFFvWGVHe0Z%2FRHFMeUB4QHxCdkh8SXJcCg%3D%3D%7CVWldfS0RMQ47ASEdJwcpSDdNPm4LNBA7RiJLDXIJZBk3YTc%3D%7CVmhIGCUFOBgkGiMXNwswCzALKxcpEikJMwg9HSEfJB8%2FBToPWQ8%3D%7CV29PHzEfP29VbFZ2SnBKdiAAPR0zHT0BOQI8A1UD%7CWGFBET8RMQszDy8QLxUuDjIJNQA1YzU%3D%7CWWBAED4QMAU%2BASEYLBksDDAEOgA1YzU%3D%7CWmJCEjwSMmJXb1d3T3JMc1NmWGJAeFhmW2JCfEZmWGw6GicHKQcnGCUdIBpMGg%3D%3D%7CW2JfYkJ%2FX2BAfEV5WWdfZUV8XGBUdEBgVXVJciQ%3D&isg=82B6A3A1ED52A6996BCA2111C9DAAEE6&_ksTS=1440490222698_2142&callback=jsonp2143' #這里的url比較長
content=requests.get(url).content
          

print content #打印出來的內容就是我們之前在網頁中獲取到的json數據。包括用戶的評論。

這里的content就是我們所需要的json數據,下一步就需要我們解析這些個json數據了。

三 使用python解析json數據

            
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import requests
import json
import re
url='https://rate.tmall.com/list_detail_rate.htm?itemId=35648967399&spuId=226460655&sellerId=1809124267?=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=&ua=011UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5OcktyT3ZCf0B9Qn9GeC4%3D%7CU2xMHDJ7G2AHYg8hAS8WKAYmCFQ1Uz9YJlxyJHI%3D%7CVGhXd1llXGVYYVVoV2pVaFFvWGVHe0Z%2FRHFMeUB4QHxCdkh8SXJcCg%3D%3D%7CVWldfS0RMQ47ASEdJwcpSDdNPm4LNBA7RiJLDXIJZBk3YTc%3D%7CVmhIGCUFOBgkGiMXNwswCzALKxcpEikJMwg9HSEfJB8%2FBToPWQ8%3D%7CV29PHzEfP29VbFZ2SnBKdiAAPR0zHT0BOQI8A1UD%7CWGFBET8RMQszDy8QLxUuDjIJNQA1YzU%3D%7CWWBAED4QMAU%2BASEYLBksDDAEOgA1YzU%3D%7CWmJCEjwSMmJXb1d3T3JMc1NmWGJAeFhmW2JCfEZmWGw6GicHKQcnGCUdIBpMGg%3D%3D%7CW2JfYkJ%2FX2BAfEV5WWdfZUV8XGBUdEBgVXVJciQ%3D&isg=82B6A3A1ED52A6996BCA2111C9DAAEE6&_ksTS=1440490222698_2142&callback=jsonp2143'
cont=requests.get(url).content
rex=re.compile(r'\w+[(]{1}(.*)[)]{1}')
content=rex.findall(cont)[0]
con=json.loads(content,"gbk")
count=len(con['rateDetail']['rateList'])
for i in xrange(count):
  print con['rateDetail']['rateList'][i]['appendComment']['content']
          

通過抓取淘寶評論為例講解Python爬取ajax動態生成的數據(經典)_第4張圖片 ??

解析:

這里需要導入所要的包,re為正則表達式需要的包,解析json數據需要import json

cont=requests.get(url).content #獲取網頁中json數據

rex=re.compile(r'\w+[(]{1}(.*)[)]{1}') #正則表達式去除cont數據中多余的部分,是數據成為真正的json格式的數據{“a”:”b”,”c”:”d”}

con=json.loads(content,”gbk”) 使用json的loads函數 將content內容轉化為json庫函數可以處理的數據格式,”gbk”為數據的編碼方式,由于win系統默認為gbk

count=len(con[‘rateDetail'][‘rateList']) #獲取用戶評論的個數(這里只是當前頁的)

for i in xrange(count):

print con[‘rateDetail'][‘rateList'][i][‘appendComment']

#循環遍歷用戶的評論 并輸出(也可以根據需求保存數據,可以查看第四部分)

這里的難點是在雜亂的json數據中查找用戶評論的路徑

四 保存解析的結果

這里用戶可以將用戶的評論信息保存到本地,如保存為csv格式。

以上就是本文的全部所述,希望大家喜歡。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产女人嗷嗷叫 | 久久精品久 | 午夜精品久久久久久久久 | 免费看黄色片视频 | 亚洲高清中文字幕一区二区三区 | 青青青国产观看免费视频 | 成人网欧美亚洲影视图片 | 久久草精品 | 91国色| 久久99网站 | 免费黄色视屏网站 | 欧美成人午夜在线全部免费 | 国产乱肥老妇精品视频 | 国产91精品高清一区二区三区 | 国产成人免费高清在线观看 | 国产精品一在线观看 | 色女影院 | 99国产欧美久久精品 | 日韩欧美二区在线观看 | 久久亚洲人成国产精品 | 欧美日韩北条麻妃一区二区 | 久久国产精品免费 | 亚洲国产精品欧美日韩一区二区 | 思思91精品国产综合在线 | 老色99久久九九精品尤物 | 国产精品免费看久久久 | 久久精品亚洲综合 | 免费视频毛片 | 特级片毛片 | 四虎网站最新网址 | 国产精品久久大陆 | 好吊顶色| 日韩精品高清自在线 | 橘梨纱视频一区二区在线观看 | 精品国产_亚洲人成在线高清 | 欧美一级a毛片人人dvd | 2021国产精品久久久久 | 国产精品久久久久久久网站 | 波多野结衣一区二区 三区 波多野结衣一区二区三区 波多野结衣一区二区三区高清在线 | 国产欧美亚洲精品第二区首页 | 三级a做爰大乳在线观看 |