課程作業(yè)要求,遂學習了python的自動化selenium工具,并爬取京東商品評論數(shù)據(jù)練練手。
目錄:
一、環(huán)境
二、第三方庫
三、分析
1.1 chrome驅(qū)動
1.2?定位評論元素
1.3?循環(huán)爬取評論數(shù)據(jù)并保存為CVS文件導(dǎo)出
其中xpath對應(yīng)網(wǎng)頁元素
? ? ? ? ?評論:
? ? ? ? ?用戶名:
四、代碼
五、結(jié)果
?
一、環(huán)境
我使用的是windows+python3.6+pycharm,大家自己去下載對應(yīng)的環(huán)境。
二、第三方庫
from selenium import webdriver
from time import sleep
import csv
三、分析
1.1 chrome驅(qū)動
browser = webdriver.Chrome()#需要使用chrome的調(diào)用驅(qū)動chormedrive導(dǎo)入script目錄
調(diào)用瀏覽器需要下載對應(yīng)的chrome驅(qū)動到項目工程目錄
我的目錄是 C:\Users\Administrator\PycharmProjects\python\venv\Scripts
需要注意的是chrome瀏覽器的版本號需要與對應(yīng)驅(qū)動版本號對應(yīng),不然會報錯。
1.2?定位評論元素
然后就是通過xpath定位網(wǎng)頁評論元素
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉(zhuǎn)到這個網(wǎng)頁
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評論按鈕
button.click() #控制按鈕進行點擊
sleep(10) #等待網(wǎng)頁加載,防止網(wǎng)頁加載過慢
1.3?循環(huán)爬取評論數(shù)據(jù)并保存為CVS文件導(dǎo)出
with open('comment_con.csv', 'w') as csvfile: #新建并打開comment_con.csv文件
writer = csv.writer(csvfile)
writer.writerow(['user_name', 'comment']) #寫第一行
for n in range(99): #進行99次循環(huán)
m = n+1
print(m)
user = browser.find_elements_by_xpath("http://div[@class='user-info']") #獲取用戶名
lis = browser.find_elements_by_xpath("http://p[@class='comment-con']") #獲取評論
for i in range(len(user)):
writer.writerow([user[i].text, lis[i].text])
button2 = browser.find_element_by_class_name("ui-pager-next") #獲取下一頁按鈕
print(button2.text)
sleep(1)
print("第%d頁" %m)
button2.click()
sleep(5)
finally:
browser.close()
其中xpath對應(yīng)網(wǎng)頁元素
評論:
用戶名:
?
四、代碼
from selenium import webdriver
from time import sleep
import csv
browser = webdriver.Chrome()#需要使用chrome的調(diào)用驅(qū)動chormedrive導(dǎo)入script目錄
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉(zhuǎn)到這個網(wǎng)頁
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評論按鈕
button.click() #控制按鈕進行點擊
sleep(10) #等待網(wǎng)頁加載,防止網(wǎng)頁加載過慢
with open('comment_con.csv', 'w') as csvfile: #新建并打開comment_con.csv文件
writer = csv.writer(csvfile)
writer.writerow(['user_name', 'comment']) #寫第一行
for n in range(99): #進行99次循環(huán)
m = n+1
print(m)
user = browser.find_elements_by_xpath("http://div[@class='user-info']") #獲取用戶名
lis = browser.find_elements_by_xpath("http://p[@class='comment-con']") #獲取評論
for i in range(len(user)):
writer.writerow([user[i].text, lis[i].text])
button2 = browser.find_element_by_class_name("ui-pager-next") #獲取下一頁按鈕
print(button2.text)
sleep(1)
print("第%d頁" %m)
button2.click()
sleep(5)
finally:
browser.close()
五、結(jié)果
博客記錄學習,傳遞知識,共同進步,希望對你有幫助。QAQ
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

