本文主要是介绍pyppeteer爬虫案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pyppeteer官方说明网站API Reference — Pyppeteer 0.0.25 documentationhttps://miyakogi.github.io/pyppeteer/reference.html
import asyncio
from pyppeteer import launch
from lxml import etree
from txdpy import siasync def main():browser = await launch({'headless':False, #headless指定浏览器是否以无头模式运行'args': ['--disable-infobars', #代表关闭浏览上方的“Chrome 正受到自动测试软件的控制'--window-size=1920,1080'#设置浏览器的显示大小]})page=await browser.newPage()await page.setViewport({'width': 1920, 'height': 1080}) # 设置页面的大小# evaluate()是执行js的方法,js逆向时如果需要在浏览器环境下执行js代码的话可以利用这个方法# js为设置webdriver的值,防止网站检测await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36')# await page.goto('https://www.youzy.cn/',timeout=30000)# xpath1= '//ul/a[@title="安徽"]'# await page.waitForXPath(xpath1)# anhui = await page.Jx(xpath1)# await anhui[0].click()await page.goto('https://www.youzy.cn/setCurrentProvince?pid=844&pname=%E5%AE%89%E5%BE%BD&redirectUrl=https://www.youzy.cn/',timeout=30000)await asyncio.sleep(1)await page.waitForXPath('//*[@id="btntopSearch"]')await page.type('#searchwd','西安交通大学')sousuo = await page.Jx('//*[@id="btntopSearch"]')await sousuo[0].click()await page.waitFor('.news-list-con')tree=etree.HTML(await page.content())news=tree.xpath('//*[@class="news-list-con"]')for new in news:print('\t'.join(si(new.xpath('.//text()'))[:7]).strip())await asyncio.sleep(200)await browser.close()asyncio.get_event_loop().run_until_complete(main())
这篇关于pyppeteer爬虫案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!