課程作業要求,遂學習了python的自動化selenium工具,并爬取京東商品評論數據練練手。
目錄:
一、環境
二、第三方庫
三、分析
1.1 chrome驅動
1.2?定位評論元素
1.3?循環爬取評論數據并保存為CVS文件導出
其中xpath對應網頁元素
? ? ? ? ?評論:
? ? ? ? ?用戶名:
四、代碼
五、結果
?
一、環境
我使用的是windows+python3.6+pycharm,大家自己去下載對應的環境。
二、第三方庫
from selenium import webdriver
from time import sleep
import csv
三、分析
1.1 chrome驅動
browser = webdriver.Chrome()#需要使用chrome的調用驅動chormedrive導入script目錄
調用瀏覽器需要下載對應的chrome驅動到項目工程目錄
我的目錄是 C:\Users\Administrator\PycharmProjects\python\venv\Scripts
需要注意的是chrome瀏覽器的版本號需要與對應驅動版本號對應,不然會報錯。
1.2?定位評論元素
然后就是通過xpath定位網頁評論元素
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉到這個網頁
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評論按鈕
button.click() #控制按鈕進行點擊
sleep(10) #等待網頁加載,防止網頁加載過慢
1.3?循環爬取評論數據并保存為CVS文件導出
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次循環
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對應網頁元素
評論:
用戶名:
?
四、代碼
from selenium import webdriver
from time import sleep
import csv
browser = webdriver.Chrome()#需要使用chrome的調用驅動chormedrive導入script目錄
try:
browser.get('https://item.jd.com/100002795959.html#none') #控制瀏覽器跳轉到這個網頁
button = browser.find_element_by_xpath("http://li[@clstag='shangpin|keycount|product|shangpinpingjia_1']") #獲取商品評論按鈕
button.click() #控制按鈕進行點擊
sleep(10) #等待網頁加載,防止網頁加載過慢
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次循環
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()
五、結果
博客記錄學習,傳遞知識,共同進步,希望對你有幫助。QAQ
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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