用pyppeteer来爬取zol笑话大全
1、首先打开zol笑话大全网址http://xiaohua.zol.com.cn/lengxiaohua/,按f12打开开发者模式,然后定位笑话段子的元素如图:
2、从图中可以看出段子的标题藏在li标签下的a标签中,段子的内容藏在第二个div标签下,接下来就好办了。因为pyppeteer这个模块的妙处,你可以不用设置爬虫的代理或者是header就可以直接干了。
3、接下来上代码:from pyppeteer 坡纠课柩import launchimport asyncioimport re熠硒勘唏from lxml import etreeasync 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_sourcedef 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、代码测试结果如下,喜欢的可以自己动手尝试一下。