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)


这样就把我们需要的数据得到了,由于数据太多,这里就不一一拿出来了。

猜你喜欢

转载自blog.csdn.net/ITxiaoangzai/article/details/88784386