IT Xiao Ang Zai 2019年3月25號
版本:python3.7
編程軟件:Pycharm,Sublime Text 3
學習了selenium,接下來就讓我們進行一下實戰吧。
地址:https://movie.douban.com/subject/26266893/reviews
先分析一下位置:
代碼如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://movie.douban.com/subject/26266893/reviews')
my = driver.find_elements_by_css_selector('div.short-content')
for i in range(0,len(my)):
print(my[i].text)
由於是多影評,所以用到的是elements。返回的是列表對象,因此需要用訪問列表的方式和text方法讀出來。
然後我們就可以分析一下網頁地址:
https://movie.douban.com/subject/26266893/reviews?start=0
https://movie.douban.com/subject/26266893/reviews?start=20
https://movie.douban.com/subject/26266893/reviews?start=40
一共有1048頁,每一頁有20個數據,因此用一個循環就可以爬取這一共20943條數據了。但由於selenium是先加載網頁後再爬區,因此速度可能會很慢,這裏就有一些方法,我們先用下面的方法。把這些規範化。
代碼如下:
from selenium import webdriver
import time
driver = webdriver.Chrome()
for i in range(0,1048):
driver.get('https://movie.douban.com/subject/26266893/reviews?start='+str(i*20))
my = driver.find_elements_by_css_selector('div.short-content')
for j in range(0,len(my)):
print(my[j].text)
with open("liu_lang_di_qiu_ying_ping.csv","a",encoding="utf-8") as f:
f.write(my[j].text+"\n")
time.sleep(5)
這樣就把我們需要的數據得到了,由於數據太多,這裏就不一一拿出來了。