python學習筆記分享(三十七)網絡爬蟲(4)selenium實戰之爬取豆瓣流浪地球影評

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)


這樣就把我們需要的數據得到了,由於數據太多,這裏就不一一拿出來了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章