基本步骤
import asyncioimport osfrom pyppeteerimport launchasyncdefmain():
browser=await launch({'headless':False},args=['--disable-infobars','--window-size=1920,1080'])
page=await browser.newPage()#需要二次设置,只在开头args设置没有用处await page.setViewport({'width':1920,'height':1080})await page.goto('http://quotes.toscrape.com/js/')await asyncio.sleep(10)# 生成截图await page.screenshot(path='1.png')# 生成pdf文件,只能在无头模式下用,可显示状态会报错# await page.pdf(path='1.pdf')# 'node => node.innerText' 为固定参数
line=await page.querySelectorEval('body > div > div:nth-child(5) > span','node => node.innerText')# 批量属性值 获取所有满足条件的href List
href=await page.querySelectorAllEval('#s-top-left > a','nodes => nodes.map(node => node.href)')# 批量文本值 获取所有满足条件的text List
text=await page.querySelectorAllEval('#s-top-left > a','nodes => nodes.map(node => node.innerText)')
line= line.split('Harry')[-1]# line = await page.querySelectorEval('body > div > div:nth-child(5) > span.text')print(type(line),line)if os.path.exists('my_data'):
os.mkdir('my_data')withopen('my_data/111.txt','w',encoding='utf-8')asfile:file.write(line)await browser.close()
asyncio.get_event_loop().run_until_complete(main())
浏览器的配置信息
browser=await launch(
headless=False,# 默认状态下为true# headless=True,
timeout=1500,# 开发者工具
devtools=False,# 防止浏览器卡住
dumpio=True,# 设置用户文件夹,默认cookie会存放这里
userDataDir='./userdata',
options={'args':[#关闭沙盒模式,linux下需要使用'--no-sandbox',# 关闭提示条'--disable-infobars',f'--window-size={width},{height}','--disable-extensions','--hide-scrollbars','--disable-bundled-ppapi-flash','--mute-audio','--disable-setuid-sandbox','--disable-gpu',],})
page=await browser.newPage()# 设置UA,ua列表自己设置,或者使用fakerawait page.setUserAgent(random.choice(self.user_agent))# 异步等待await asyncio.sleep(3)# 点击操作
page.click("#Submit")# 输入字符串
page.type('#Submit','aaaaaaaaaa')# 让当前页面滑动到最底部await page.evaluate('window.scrollBy(0, document.body.scrollHeight)')
参考链接:
https://cuiqingcai.com/6942.html
https://blog.csdn.net/Aaron_liu1/article/details/107328140