課程作業(yè)要求,遂學(xué)習(xí)了python的自動(dòng)化selenium工具,并爬取京東商品評(píng)論數(shù)據(jù)練練手。
目錄:
一、環(huán)境
二、第三方庫(kù)
三、分析
1.1 chrome驅(qū)動(dòng)
1.2?定位評(píng)論元素
1.3?循環(huán)爬取評(píng)論數(shù)據(jù)并保存為CVS文件導(dǎo)出
其中xpath對(duì)應(yīng)網(wǎng)頁(yè)元素
? ? ? ? ?評(píng)論:
? ? ? ? ?用戶名:
四、代碼
五、結(jié)果
?
一、環(huán)境
我使用的是windows+python3.6+pycharm,大家自己去下載對(duì)應(yīng)的環(huán)境。
二、第三方庫(kù)
from selenium import webdriver
from time import sleep
import csv
三、分析
1.1 chrome驅(qū)動(dòng)
browser = webdriver.Chrome()#需要使用chrome的調(diào)用驅(qū)動(dòng)chormedrive導(dǎo)入script目錄
調(diào)用瀏覽器需要下載對(duì)應(yīng)的chrome驅(qū)動(dòng)到項(xiàng)目工程目錄
我的目錄是 C:\Users\Administrator\PycharmProjects\python\venv\Scripts
需要注意的是chrome瀏覽器的版本號(hào)需要與對(duì)應(yīng)驅(qū)動(dòng)版本號(hào)對(duì)應(yīng),不然會(huì)報(bào)錯(cuò)。
1.2?定位評(píng)論元素
然后就是通過(guò)xpath定位網(wǎng)頁(yè)評(píng)論元素
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉(zhuǎn)到這個(gè)網(wǎng)頁(yè)
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評(píng)論按鈕
button.click() #控制按鈕進(jìn)行點(diǎn)擊
sleep(10) #等待網(wǎng)頁(yè)加載,防止網(wǎng)頁(yè)加載過(guò)慢
1.3?循環(huán)爬取評(píng)論數(shù)據(jù)并保存為CVS文件導(dǎo)出
with open('comment_con.csv', 'w') as csvfile: #新建并打開(kāi)comment_con.csv文件
writer = csv.writer(csvfile)
writer.writerow(['user_name', 'comment']) #寫第一行
for n in range(99): #進(jìn)行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']") #獲取評(píng)論
for i in range(len(user)):
writer.writerow([user[i].text, lis[i].text])
button2 = browser.find_element_by_class_name("ui-pager-next") #獲取下一頁(yè)按鈕
print(button2.text)
sleep(1)
print("第%d頁(yè)" %m)
button2.click()
sleep(5)
finally:
browser.close()
其中xpath對(duì)應(yīng)網(wǎng)頁(yè)元素
評(píng)論:
用戶名:
?
四、代碼
from selenium import webdriver
from time import sleep
import csv
browser = webdriver.Chrome()#需要使用chrome的調(diào)用驅(qū)動(dòng)chormedrive導(dǎo)入script目錄
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉(zhuǎn)到這個(gè)網(wǎng)頁(yè)
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評(píng)論按鈕
button.click() #控制按鈕進(jìn)行點(diǎn)擊
sleep(10) #等待網(wǎng)頁(yè)加載,防止網(wǎng)頁(yè)加載過(guò)慢
with open('comment_con.csv', 'w') as csvfile: #新建并打開(kāi)comment_con.csv文件
writer = csv.writer(csvfile)
writer.writerow(['user_name', 'comment']) #寫第一行
for n in range(99): #進(jìn)行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']") #獲取評(píng)論
for i in range(len(user)):
writer.writerow([user[i].text, lis[i].text])
button2 = browser.find_element_by_class_name("ui-pager-next") #獲取下一頁(yè)按鈕
print(button2.text)
sleep(1)
print("第%d頁(yè)" %m)
button2.click()
sleep(5)
finally:
browser.close()
五、結(jié)果
博客記錄學(xué)習(xí),傳遞知識(shí),共同進(jìn)步,希望對(duì)你有幫助。QAQ
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
