import random
from pyppeteer import launch # 控制模拟浏览器用
from pyppeteer.dialog import Dialog
from retrying import retry # 设置重试次数用的
js1 = '''() =>{Object.defineProperties(navigator,{webdriver:{get: () => undefined} })}'''
js2 = '''() => {alert ( window.navigator.webdriver )}'''
async def main(url): # 定义main协程函数,
#插件路径
chrome_extension = r'C:\Users\Administrator.USER-20190313RI\AppData\Local\Chromium\User Data\Default\Extensions\dbclpoekepcmadpkeaelmhiheolhjflj\0.2.7_0'
args = ['--no-sandbox',
'--disable-gpu',
'--log-level=3', #日志等级
'--disable-infobars', # 关闭提示
'--window-size={},{}'.format(1080,950),
# "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
如果有人会发现这个有用,这是我基于接受的答案的
Python
实现:import asyncioimport timefrom
pyppeteer
import launchfrom
pyppeteer
.errors import TimeoutErrorfrom urllib.parse import urlparseURLS = ['https://www.trustarc.com/']start...
我们都知道selenium目前已经停更很长时间了,而且很多网站都已经能够识别selenium了,对于新手来说想要简单的模拟浏览器去采集数据就显得很困难。那么猫哥今天就给大家介绍一款比selenium更好用的浏览器模拟软件
pyppeteer
。
pyppeteer
是一位日本工程师根据 Puppeteer 开发出来的非官方版本,而Puppeteer则是由Google开发。具体信息大家可以自行百度一下,猫...
爬虫小白,昨天领导给了个任务要抓一些数据,看了下页面以为是简单页面解析一下就可以,觉着没什么问题,之后发现被打脸了。
页面:http://query.bjeea.cn/queryService/rest/plan/134
要求:按院校查询和按专业查询的数据原样抓下来
1、出现的问题
最初采用requests+BeautifulSoup解析的方式,抓 按院校查询 的数据没有问题(代码在最后),但是在抓 按专业查询 的数据时出现抓到的页面和在浏览器看到不一致的情况,每次抓取都是按院校查询的数据,
import random
from
pyppeteer
import launch # 控制模拟浏览器用
from
pyppeteer
.dialog import Dialog
from retrying import retry # 设置重试次数用的
js1 = '''() =>{
Object.defineProperties(navigator,{
webdriver:{
get: () =&...
async def main():
# 启动一个浏览器
browser = await launch(headless=False,args=['--disable-infobars'])
# 创建一个页面
page = await browser.newPage()
# 跳转到百度
本文介绍使用
pyppeteer
打开百度搜索页面,输入关键词,并随机
点击
某个新闻链接,然后再次返回关键词结果页。而我们接下来要做的就是,给该代码增加一个随机点选某个新闻链接的功能。通常情况下,页面结果会有10条,我们可以创建一个随机数组,让程序随机去点选某个新闻链接。:使用
pyppeteer
打开百度搜索页面,输入关键词,并随机
点击
搜索词结果页的首页某个新闻链接,然后再次返回关键词结果页。这里需要借助selector定位,关于selector定位方法,这里暂时不详述了,感兴趣的朋友可自行查阅资料。
已有大佬写过
Pyppeteer
的详细说明,这里主要说一下在爬虫过程中遇到的关于click问题。
click方法很简单,就直接调用
await page.click('.Selector',
options={'button': 'left', #left, right, of middle, defaults to left
'clickCount': 1, # 1 or 2
最近在使用
pyppeteer
抓淘宝,同事使用JavaScript写调用puppeteer能完美运行。但我改成
python
就一直报这样一个错误:
pyppeteer
.errors.NetworkError: Protocol Error (Page.navigate): Session closed. Most likely the page has been closed
而代码中造成这样一个错误...