用pyppeteer来爬取zol笑话大全

 时间:2026-02-13 19:57:54

1、首先打开zol笑话大全网址http://xiaohua.zol.com.cn/lengxiaohua/,按f12打开开发者模式,然后定位笑话段子的元素如图:

用pyppeteer来爬取zol笑话大全

用pyppeteer来爬取zol笑话大全

2、从图中可以看出段子的标题藏在li标签下的a标签中,段子的内容藏在第二个div标签下,接下来就好办了。因为pyppeteer这个模块的妙处,你可以不用设置爬虫的代理或者是header就可以直接干了。

3、接下来上代码:

from pyppeteer import launch

import asyncio

import re

from lxml import etree

async def gettxt(i):

browser=await launch()#没有参数默认开启无头模式

page=await browser.newPage()#新建一个网页

await page.goto('http://xiaohua.zol.com.cn/lengxiaohua/'+str(i)+'.html')

page_source=await page.content()

return page_source

def callback(future):

page_source=future.result()

tree=etree.HTML(page_source)

li_list=tree.xpath('//li[@class="article-summary"]')

for i in li_list:

title=i.xpath('.//span[@class="article-title"]/a/text()')

txt=str(i.xpath('.//div[@class="summary-text"]/p/text()')).replace('\\n\\t','')

print(title)

print(txt)

print('+'*50)

for i in range(1,11):

coroutine=gettxt(i)

loop=asyncio.get_event_loop()

task=asyncio.ensure_future(coroutine)

task.add_done_callback(callback)

loop.run_until_complete(task)

4、代码测试结果如下,喜欢的可以自己动手尝试一下。

用pyppeteer来爬取zol笑话大全

1、await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'):用来设置header

await page.setViewport({'width':width,'height':height}):用来设置整个页面

一些基本的网站一般是检测webdriver的,但是设置了以下的其中一个代码就不会被检测出来了:

await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')

await page.evaluate('''() =>{ window.navigator.chrome = { runtime: {}, }; }''')

await page.evaluate('''() =>{ Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] }); }''')

await page.evaluate('''() =>{ Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3, 4, 5,6], }); }''')

  • 如何爬取百度搜索结果
  • python爬取三种方法
  • 如何爬取学校通知
  • pyppeteer的安装及使用
  • 怎么用python爬取网站Jpg图片
  • 热门搜索
    5月20日是什么星座 儿童手足口病怎么治 龙山生活网 释魂武器怎么做 如何推销自己的产品 工程签证单怎么写 颐指气使是什么意思 无线usb网卡怎么用 单核细胞百分比偏高是什么原因 如何发面蒸馒头