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

网友投稿 743 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

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

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

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
相关文章