博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

xpath之段子网内容及标题抓取

Posted on 2019-03-20 16:37  TigerAt  阅读(215)  评论(0)    收藏  举报
 1 import requests
 2 from lxml import etree
 3 
 4 #指定url
 5 url = "https://ishuo.cn/joke"
 6 
 7 headers = {
 8         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
 9     }
10 #发起请求并获取页面数据
11 page_text=requests.get(url=url,headers=headers).text
12 
13 #数据解析
14 tree=etree.HTML(page_text)
15 #获取所有的li标签(段子内容和标题都被包含在li标签中)
16 li_list = tree.xpath('//div[@id="list"]/ul/li')
17 #注意:Element类型的对象可以继续调用xpath函数,对该对象表示的局部内容进行解析
18 fp = open('./duanzi.txt','w',encoding='utf-8')
19 for li in li_list:
20     content = li.xpath('./div[@class="content"]/text()')[0]
21     title = li.xpath('./div[@class="info"]/a/text()')[0]
22     #持久化存储
23     fp.write(title+":"+content+"\n\n")
24 print("所有数据写入成功")
25 fp.close()

注:此代码仅供学习参阅