导入相关模块:
from selenium.webdriver import Chrome
b = Chrome()
案例:爬取豆瓣电影250排行榜
b.get('https://movie.douban.com/top250?start=0&filter=')
print(b.page_sourse) # 获取豆瓣top250的页面源代码
导入相关模块
import time # 控制停顿时间的模块
from selenium.webdriver import Chrome
- 找到不同页面地址的变化规律,利用循环实现多页数据的请求
b = Chrome() # 这个是打开浏览器,一定要放在循环的外面
for x in range(0, 256, 25): # 找出的页数变化
b.get('https://movie.douban.com/top250?start={x}&filter=')
print(b.page_source)
- 点击翻页按钮,刷新页面内容,在刷新后再次获取网页源代码
导入模块:
from selenium.webdriver.common.by import By
b = Chrome()
b.get('https://movie.douban.com/top250?start=0&filter=')
for _ in range(5):
print(b.page_source)
# 获取下一页按钮
# next = b.find_element(By.CLASS_NAME, 'next')
# 点击下一页按钮
# next.click()
b.find_element(By.CSS_SELECTOR, '.next')
- 翻页方法2涉及的知识点
浏览器对象.b.find_element(获取方式,数据) —— 返回符合条件的第一个标签,结果是标签对象
浏览器对象.b.find_elements(获取方式,数据) —— 返回符合条件的所有标签,结果是列表,列表中的元素是标签对象
获取方式:
By.ID —— 通过ID属性值获取标签
By.CLASS_NAME —— 通过class属性值获取标签
By.CSS_SELECTOR —— 通过css选择器获取标签
By.LINK_TEXT —— 通过a标签的标签内容获取标签
By.PARTIAL_LINK_TEXT —— 通过标签内容所包含的部分内容来获取完整标签
1)输入框输入内容:输入框对应的标签.send_kyes(需要输入的内容) —— 括号里输入需要输入的内容
2)点击标签:标签对象.click()
js中页面滚动的代码:window.scrollBy(x方向的偏移量,y方向的偏移量)
滚动1次
b.execute_script('window.scrollBy(0,500)') # 顺着Y轴滚动500
滚动多次
for x in range(10): # 滚动10次
b.execute_script('window.scrollBy(0,500)')
time.sleep(1) # 每滚动一次就停顿1秒
input(‘结束’) # 如果不想关闭浏览器就加个input,入股要关闭则不加