python+selenium 使用下拉滚动 爬取豆瓣

分析网页

第一步 使用xpath定位元素 显示定位到40个元素
python+selenium 使用下拉滚动 爬取豆瓣_第1张图片
整个页面 没有分页 想要获取更多数据 需要下拉才能获取

通过手动下拉之后

在这里插入图片描述

第二次下拉 获取到了更多数据

在这里插入图片描述

分析后 我们可以使用selenium中的下拉方法来完成此次抓取

源代码

from selenium import webdriver
import time
import re
import random
driver=webdriver.Chrome()
driver.implicitly_wait(10)  # 隐式等待

防止被识别, 设置随机等待秒数
rand_seconds = random.choice([1,3])+random.random()

listname = []

def spider(url,xpath_name):
	driver.get(url=url)

	# 循环几次  滚动几次
	for i in range(1,8):
    	# 爬取电影名称
    	name = driver.find_elements_by_xpath(xpath_name)

    	for j in range(len(name)):
        	# 判断当前下标name有没有文本
        	if name[j].text:
            	# 有则添加进列表
            	listname.append(name[j].text)
        	else:
            	pass
    	# 下拉滚动
    	driver.execute_script('window.scrollTo(0,{})'.format(i * 400))
    
	完成后关闭浏览器
	driver.close()

	print(listname)
	print(len(listname))

调用函数 并传参url和xpath
spider(url='https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90',xpath_name='/	/*[@id="content"]/div/div[1]/div/div/div/div/div//a')

本次抓取效果

在这里插入图片描述


往期推荐

python中对list去重的方法

python + selenium爬取Boss直聘网

django框架之分页

存 读csv

python中文件读写模式的区别

机器学习之绘图

你可能感兴趣的:(爬虫,Python)