本篇文章给大家谈谈Python自动化网页抓取教程三:运用Selenium控制Chrome浏览器实现访问量提升,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
二、安装必要插件
测试环境:Windows 10 + python 3.6.2
1.安装硒
点安装硒
2. 安装请求
pip 安装请求
3.安装并配置Chrome WebDriver
每个版本支持的chrome版本不同,必须使用支持的版本来驱动浏览器。
官网被屏蔽,可以使用这个镜像下载完整版:http://npm.taobao.org/mirrors/chromedriver
下面给出的是最新版本2.3.7,支持的chrome版本是v64-66。其他版本可以自行下载。
Windows 版本:chromedriver_win32
Windows安装方法:
下载压缩包,解压到任意文件夹,并将该文件夹添加到系统PATH环境变量中。
Linux安装方法:
将解压后的文件放到/usr/bin目录下,并修改权限。
三、代码测试
目标:使用代码控制浏览器对指定链接的访问。并为每次访问使用不同的代理。
代理:大象代理的api接口也是用来提取代理IP的。
随机导入
导入请求
导入时间
从硒导入网络驱动程序
导入系统
导入操作系统
# 随机获取浏览器标识符
def get_UA():
UA_列表=[
"Mozilla/5.0(Linux;Android 4.1.1;Nexus 7 Build/JRO03D)AppleWebKit/535.19(KHTML,如Gecko)Chrome/18.0.1025.166 Safari/535.19",
"Mozilla/5.0(Linux;U;Android 4.0.4;en-gb;GT-I9300 Build/IMM76D)AppleWebKit/534.30(KHTML,如Gecko)版本/4.0 Mobile Safari/534.30",
"Mozilla/5.0(Linux;U;Android 2.2;en-gb;GT-P1000 Build/FROYO)AppleWebKit/533.1(KHTML,如Gecko)版本/4.0 Mobile Safari/533.1",
"Mozilla/5.0(Windows NT 6.2;WOW64;rv:21.0)Gecko/20100101 Firefox/21.0",
"Mozilla/5.0(Android;移动;rv:14.0)Gecko/14.0 Firefox/14.0",
"Mozilla/5.0(Windows NT 6.2;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/27.0.1453.94 Safari/537.36"
]
randnum=random.randint(0, len(UA_list)-1)
h_list=UA_list[随机数]
返回h_list
# 获取代理IP
def get_ip():
# 这里填写大象代理api地址。 num 参数必须为1。一次只能请求一个IP 地址。
url="http://tvp.daxiangdaili.com/ip/?tid=您的订单号num=1delay=5category=2"
响应=requests.get(url)
响应.close()
ip=响应. 文本
打印(ip)
返回ip
如果__name__=="__main__":
url="https://pingxonline.com/"
# 无限循环,每次必须打开浏览器窗口,而不是选项卡
而1:
# 调用函数获取浏览器ID、字符串
标头=get_UA()
# 调用该函数获取IP代理地址。这里获取的是一个字符串,而不是像前两个教程那样是一个数组。
代理=get_ip()
# 使用chrome 进行自定义
chrome_options=webdriver.ChromeOptions()
# 设置代理
chrome_options.add_argument("--proxy-server=http://"+proxy)
# 设置用户代理
chrome_options.add_argument("--user-agent=""+headers+""")
# 使用设置初始化网络驱动程序
驱动程序=webdriver.Chrome(chrome_options=chrome_options)
尝试:
#访问超时30秒
driver.set_page_load_timeout(30)
# 访问网页
驱动程序.get(url)
#退出当前浏览器
驱动程序.close()
# 延迟1~3秒继续
time_delay=random.randint(1, 3)
而时间延迟0:
print(str(time_delay) + " 还剩几秒!")
时间.睡眠(1)
时间延迟=时间延迟- 1
经过
除了:
打印("超时")
# 退出浏览器
驱动程序.quit()
时间.睡眠(1)
# 重新启动脚本。之所以选择重新启动脚本,是因为长时间运行这个脚本会出现一些莫名其妙的问题。最好重新启动才能解决。
python=sys.可执行文件
os.execl(python, python, *sys.argv)
最后:
经过
渲染:
这段代码的稳定性还是不错的。如果出现超时或其他错误,脚本将重新启动以继续获取新的代理IP。确保脚本可以长时间运行。
系列教程:
【Python自动化网页抓取教程三:运用Selenium控制Chrome浏览器实现访问量提升】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我一直在想要学习如何提高博客人气,这个课程看起来很有帮助!
有16位网友表示赞同!
以前没接触过Selenium,这篇文章能教会我如何在chrome浏览器里自动化操作吗?
有12位网友表示赞同!
希望教程内容详细,可以一步步指导完成。
有18位网友表示赞同!
用Selenium可以让爬虫爬取博客数据更精准吗?
有18位网友表示赞同!
学习Python爬虫太棒了!这个系列教程真的很棒!
有7位网友表示赞同!
感觉使用Selenium控制浏览器操作会更灵活吧?
有14位网友表示赞同!
我很好奇Selenium的使用技巧,能教我怎么编写复杂的自动化脚本吗?
有7位网友表示赞同!
这篇教程讲的是如何刷访问量还是其他爬取任务?
有18位网友表示赞同!
想要提高博客排名,爬虫确实是个不错的选择。
有14位网友表示赞同!
我已经有了Python基础,学习Selenium应该更容易一些吧?
有9位网友表示赞同!
希望教程里包含一些安全方面的注意事项,避免过度使用爬虫带来的风险。
有20位网友表示赞同!
这个系列教程一共几篇文章?我想要一次性了解全过程!
有18位网友表示赞同!
感觉使用Chrome浏览器比其他浏览器更适合做爬虫操作?
有16位网友表示赞同!
Python爬虫的应用场景还真很多!
有6位网友表示赞同!
我已经订阅了你的博客,期待后面的更新!
有20位网友表示赞同!
Selenium的操作界面比较复杂吗?
有9位网友表示赞同!
这个教程能让我学会如何利用爬虫自动化处理工作吗?
有6位网友表示赞同!
学习Python爬虫可以让我更好地理解网页源码吧?
有18位网友表示赞同!
感觉刷访问量是一种不太正面的操作,还是应该注重内容质量!
有19位网友表示赞同!
Selenium是一个很有用的工具,能够解决很多编程问题。
有13位网友表示赞同!