Python爬蟲:使用pyppeteer爬取動態加載的網站
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
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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。