数据采集(三):用XPath爬取腾讯新闻

需要导入的库

import requests
from lxml import etree

先用requests.get()方法请求页面

result=requests.get("http://news.qq.com/")
encode=result.encoding
content=result.content
encode
'GB2312'

注意指定解析器的编码格式


selector=etree.HTML(content,parser=etree.HTMLParser(encoding=encode))

腾讯新闻首页上每条新闻的标题以及超链接,对应html源码有如下结构:

<a target="_blank" class="linkto" href="http://news.qq.com/a/20170720/019981.htm">辽宁舰过航台湾海峡遭美军驱逐舰跟踪 国防部回应</a>

用Xpath解析新闻的标题及url

samples=selector.xpath('//a[@class="linkto"]')

for sample in samples:
    title=sample.text.strip()
    print title

    url=sample.attrib['href']
    print url
辽宁舰过航台湾海峡遭美军驱逐舰跟踪 国防部回应
http://news.qq.com/a/20170720/019981.htm
“七下八上”主汛期将至:北方多雨 周末华北“退烧”
http://news.qq.com/a/20170720/019390.htm
巴西众院弹劾总统案获通过 罗塞夫政党承认落败
http://news.qq.com/a/20160418/023091.htm
腾讯股价拆股后首次达300港元 今年累计涨幅超55%
http://tech.qq.com/a/20170720/016568.htm
美国参议员麦凯恩被诊断出脑癌 曾参选美国总统
http://news.qq.com/a/20170720/009125.htm
人社部:36种高价刚需药纳入医保 最高降幅达70%
http://news.qq.com/a/20170720/012923.htm
人民日报海外版:印度推进“大国梦”急不可耐
http://news.qq.com/a/20170720/001930.htm
万达融创富力集体高开 三者签约637亿元并购案
http://stock.qq.com/a/20170720/015276.htm
苹果可能真的在造车,在中国秘密开发动力电池
http://tech.qq.com/a/20170720/010845.htm
开发商毁约夺地 将4S店砸成废墟
http://news.qq.com/a/20170719/058897.htm
苹果股价连涨9天创纪录 iPhone 8延迟上市也挡不住
http://tech.qq.com/a/20170720/016469.htm
印军在克什米尔地区对巴方“无故”开火 巴军方回击
http://news.qq.com/a/20170720/001479.htm
男孩独自乘机出国被逐下航班 航空公司:托管儿童超额
http://news.qq.com/a/20170720/001745.htm
地产三巨头60分钟魔幻剧:富力背景板“进出”大戏
http://finance.qq.com/a/20170719/061523.htm
范冰冰亏4400万又如何?投房地产葡萄酒收获颇丰
http://ent.qq.com/a/20170720/005916.htm
刘亦菲获专人撑伞 长发白裙却穿拖鞋
http://ent.qq.com/a/20170720/005185.htm
袁泉带女儿现身 小姑娘推行李超自立
http://ent.qq.com/a/20170720/007934.htm
美股三大指数齐创收盘纪录新高 纳指九连涨
http://stock.qq.com/a/20170720/001560.htm
神锋驾到!切尔西官方宣布莫拉塔加盟
http://sports.qq.com/a/20170720/001226.htm
京东与唯品会否认合并传闻 周三开盘股价双双上涨
http://tech.qq.com/a/20170719/061676.htm
农业部再发两个进口转基因生物安全证书:均为玉米
http://finance.qq.com/a/20170719/060784.htm
不延迟了!iPhone 8会在9月底推出
http://tech.qq.com/a/20170720/003257.htm
世锦赛-女子10米台中国双保险丢冠 马来西亚夺历史首金
http://sports.qq.com/a/20170720/001150.htm
亚马逊推出自己的社交网络 不过目前只针对iOS用户
http://tech.qq.com/a/20170719/065360.htm
美国宣布对涉伊核中国民企和个人单边制裁 中方回应
http://news.qq.com/a/20170719/052073.htm
IBM连续21季度营收下滑为何仍能实现盈利?
http://stock.qq.com/a/20170719/066938.htm
港媒:菲律宾捣破一以中国人为首绑架匪帮 拘捕45人
http://news.qq.com/a/20170719/061172.htm
环法第17赛段 荷兰乐透车队罗格利奇夺冠
http://sports.qq.com/a/20170719/066844.htm
寒门出贵子!双胞胎兄弟全都考进名校
http://news.qq.com/a/20170719/045395.htm
深圳积分入户放开学历限制 港媒:中小城市或效仿
http://news.qq.com/a/20170720/001173.htm
白银案被告人高承勇庭审鞠躬道歉现场
http://news.qq.com/a/20170719/065456.htm
朴槿惠以健康不佳为理由 再次拒绝为李在
http://news.qq.com/a/20170719/053842.htm
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我来介绍一下如何使用 Python 的 XPath 爬取评书网的数据。 首先,我们需要安装 requests 和 lxml 库。可以使用以下命令进行安装: ``` pip install requests lxml ``` 接下来,我们需要使用 requests 库发送请求并获取评书网的 HTML 页面。我们可以使用以下代码: ```python import requests url = 'http://www.pingshu8.com/' response = requests.get(url) if response.status_code == 200: html = response.text print(html) else: print('请求失败') ``` 接下来,我们需要使用 lxml 库来解析 HTML 页面。我们可以使用以下代码: ```python from lxml import etree html = '<html><body><div><h1>hello world</h1></div></body></html>' selector = etree.HTML(html) result = selector.xpath('//h1/text()') print(result) ``` 上面的代码中,我们首先使用 etree.HTML() 函数将 HTML 页面转换为 Element 对象,然后使用 xpath() 方法获取我们想要的数据。 接下来,我们需要找到评书网页面中我们需要爬取的数据的 XPath 路径。你可以使用 Chrome 浏览器的开发者工具来查找 XPath 路径。具体步骤是: 1. 打开评书网页面 2. 右键点击需要爬取的数据区域 3. 选择“检查”,打开开发者工具 4. 在开发者工具中找到相应的 HTML 元素 5. 右键点击该元素,选择“Copy XPath”即可复制该元素的 XPath 路径 例如,我们想要爬取评书网首页的所有分类名称和链接,我们可以使用以下代码: ```python import requests from lxml import etree url = 'http://www.pingshu8.com/' response = requests.get(url) if response.status_code == 200: html = response.text selector = etree.HTML(html) # 获取所有分类名称和链接 categories = selector.xpath('//div[@id="nav"]/ul/li/a/text()') links = selector.xpath('//div[@id="nav"]/ul/li/a/@href') for i in range(len(categories)): print(categories[i], links[i]) else: print('请求失败') ``` 上面的代码中,我们使用了 XPath 路径 `//div[@id="nav"]/ul/li/a/text()` 和 `//div[@id="nav"]/ul/li/a/@href` 来获取所有分类名称和链接。 希望这个示例能够帮助你学习如何使用 XPath 爬取评书网的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值