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)
这样就把我们需要的数据得到了,由于数据太多,这里就不一一拿出来了。