Python爬虫:使用pyppeteer爬取动态加载的网站

网友投稿 769 2022-05-30

pyppeteer 类似selenium,可以操作Chrome浏览器

文档:https://miyakogi.github.io/pyppeteer/index.html

github: https://github.com/miyakogi/pyppeteer

安装

环境要求:

python 3.6+

pip install pyppeteer

1

代码示例

# -*- coding: utf-8 -*- import asyncio from pyppeteer import launch from pyquery import PyQuery as pq # 最好指定一下自己浏览器的位置,如果不指定会自动下载,太慢了... executable_path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" # 示例一: 渲染页面 async def crawl_page(): # 打开浏览器 browser = await launch(executablePath=executable_path) # 打开tab page = await browser.newPage() # 输入网址回车 await page.goto('http://quotes.toscrape.com/js/') # 获取内容并解析 doc = pq(await page.content()) print('Quotes:', doc('.quote').length) # 关闭浏览器 await browser.close() # 示例二:截图,保存pdf,执行js async def save_pdf(): browser = await launch(executablePath=executable_path) page = await browser.newPage() await page.goto('http://quotes.toscrape.com/js/') # 网页截图保存 await page.screenshot(path='example.png') # 网页导出 PDF 保存 await page.pdf(path='example.pdf') # 执行 JavaScript dimensions = await page.evaluate('''() => { return { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, deviceScaleFactor: window.devicePixelRatio, } }''') print(dimensions) await browser.close() if __name__ == '__main__': asyncio.get_event_loop().run_until_complete(crawl_page()) # asyncio.get_event_loop().run_until_complete(save_pdf())

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

Python爬虫:使用pyppeteer爬取动态加载的网站

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

异步编程,这个关键字太多了,看的眼花缭乱

参考

别只用 Selenium,新神器 Pyppeteer 绕过淘宝更简单!

Python 网站

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python:kazoo模块与Zookeeper交互
下一篇:Python进阶(十九)-Python3安装第三方爬虫库BeautifulSoup4
相关文章