python3 爬虫 selenium的使用

本文详细介绍Selenium Python库的使用方法,包括基本的浏览器自动化操作、元素定位、Cookie管理和模拟用户行为等。同时,文章提供了如何设置Chrome浏览器选项、更换User-Agent和添加代理服务器的示例。

官网链接:http://selenium-python.readthedocs.io/api.html#module-selenium.common.exceptions
seleniums设置位:https://www.cnblogs.com/youngleesin/p/10692352.html

在代码中使用slenium

导入模块:

from selenium import webdriver

创建Chrome的webdriver对象
driver = webdriver.Chrome() 如果是Windows()中传入driver的路径: “c:…/pantomjs.exe”

发送请求

driver.get(“http://www.baidu.com/”)

根据id定位元素并进行操作
driver.find_element_by_id(“kw”).send_keys(“python”) # 找到id为kw的输入框, 填写: python
driver.find_element_by_id(“su”).click() # 找到id为su的, 进行单击

退出

driver.close() #关闭当前窗口(选项卡)
driver.quit() #清除缓存退出浏览器

slenium定位元素及常规操作

定位元素用法:

el = find_element_by_id (返回一个,如果没有就报错了)
find_elements_by_xpath (返回一个列表,如果没有就返回一个空列表)
find_elements_by_link_text (根据文本内容返回元素列表, 如果没有返回空列表)
find_elements_by_partial_link_text (根据文件部分内容返回元素列表, 如果没有返回空列表)
find_elements_by_tag_name(根据标签名[节点名]返回元素元素列表, 如果没有返回空列表)
find_elements_by_class_name(根据class属性对应值范围元素列表, 如果没有返回空列表)
find_elements_by_css_selector(根据css选择器返回元素列表, 如果没有返回空列表)

c 注意点1:
find_element 和find_elements的区别:
find_element: 返回找到第一个元素,如果没有报错
find_elements: 返回找到的所有元素列表, 如果没有找到返回空列表

注意点2:

by_link_text和by_partial_link_text的区别:
by_link_text: 全部文本都一样
by_partial_link_text: 包含某个文本

注意点3

by_xpath只能获取元素, 要获取属性和文本需要使用get_attribute(属性名) 和.text

slenium 深入使用指南

读取cookie:

读取所有cookie:driver.get_cookies()
读取指定cookie:driver.get_cookie(name)

添加cookie:

driver.add_cookie(dict)

删除cookie:

删除所有cookie:driver.delete_all_cookies()
删除指定cookie:driver.delete_cookie(name)

模拟行为

send_keys是往可以输入内容的标签中输入数据:el.send_keys(“待输入的数据”)
可以点击的元素:el.click()

获取响应数据:

res = driver.page_source # 获取页面的源码
cookie = driver.get_cookies() # 获取cookie信息
url = driver.current_url # 获取当前的URL

设置请求头选项

创建设置对象
options = webdriver.ChromeOptions()

1.更换头部
options.add_argument(‘user-agent=“Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20”’)

注意:此处的user-agent必须是小写, 否则不生效

2 添加代理
options.add_argument("–proxy-server=http://117.32.106.8:8080")

注意:=两边不能有空格,不能是这样–proxy-server = http://117.32.106.8:8080
验证代理是否生效:

driver.get(“http://httpbin.org/get”)
print(driver.page_source)

让设置的选项生效
driver = webdriver.Chrome(options=options)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值