- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE
PAGE1/NUMPAGES6
Python网络爬虫:Selenium--以携程酒店为例
\hSelenium简介
Selenium是一个用于网站\h应用程序自动化的工具,它可以直接运行在浏览器中,就像真正的用户在操作一样。它相当于一个机器人,可以模拟人类在浏览器上的一些行为,比如输入文本、点击、回车等。Selenium支持多种浏览器,本文以Chrome浏览器为例。chromedriver是一个驱动Chrome浏览器的驱动程序,针对不同的浏览器有不同的driver。
Selenium的优缺点
优点:浏览器能请求到的数据,Selenium同样能请求到,爬虫稳定,适用于所有类型的动态渲染网页。缺点:代码量大、容易被反爬、性能低。笔者认为性能低、速度慢是其最大缺点。
浏览器基本操作
浏览器基本操作包括打开浏览器、设置窗口大小、设置打开浏览器位置、关闭浏览器、前进、后退、刷新、获取网页代码等。下面先通过代码来演示如何打开网页并设置浏览器窗口的大小以及打开位置:
fromseleniumimportwebdriver
fromselenium.webdriver.chrome.serviceimportService
fromselenium.webdriver.chrome.optionsimportOptions4
url=/hotels/396376.html#ctm_ref=hp_htl_pt_pro_01#携程上海虹桥宾馆主页
service=Service(executable_path=rD:\anaconda\Scripts\chromedriver.exe)#指定chromedriver位置
opt=Options()
opt.add_argument(
user-agent=Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36)
opt.add_argument(--disable-blink-features=AutomationControlled)#隐藏浏览器痕迹
driver=webdriver.Chrome(service=service,options=opt)#实例化浏览器对象
#driver.maximize_window()#浏览器窗口最大化
#driver.set_window_position(1000,20) #设置浏览器打开位置
#driver.set_window_size(800,800) #设置浏览器窗口大小
driver.get(url)#打开网页
接下来演示如何前进、后退、刷新网页。需要注意的是,Selenium打开不同的网页或者进行前进、后退时,都是在同一个窗口下操作的,不会打开新的窗口:
driver.get(/hotels/396376.html#ctm_ref=hp_htl_pt_pro_01)#打开携程
time.sleep(1)
3
url2=https://\h #打开京东
driver.get(url2)
time.sleep(1)
7
8driver.back()#
8
driver.back()
#回退
9
time.sleep(1)
10
11
driver.forward()
#前进
12
time.sleep(1)
13
14
driver.refresh()
#刷新页面
15
time.sleep(1)
16
17
source=driver.page_source
接下来用一个表格展示Selenium浏览器的基本操作:
浏览器基本操作
方法
说明
get()
打开浏览器
maximize_window()
浏览器窗口最大化
set_window_position
()
设置浏览器打开位置
set_window_size()
设置浏览器窗口大小
back()
回退
forward()
前进
refresh()
刷新页面
page_source
获取网页源代码
close()
关闭当前标签页
quit()
退出浏览器
网页元素定位
Selenium抓取网页信息是在开发者工具的Elements选项卡里,Selenium定位网页元素主要通过元素的属性值或者元素在HTML里的路径位置,主要的定位方式如下:
定位方式
方法
ID定位
driver.find_element(By.ID,ID)
name定位
driver.find_element(By.NAME,NA
文档评论(0)