PYTHON爬虫入门——Xpath

Python爬虫入门

1.利用requests库获取内容

  • 构造请求头
  • get方法获取内容
#导入所需第三方库
import requests
from lxml import etree
#构造请求头,模拟真人访问,如果不加,会直接以爬虫身份访问,可能获取不到内容。(不懂的话,直接复制使用就可以)
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

1.1.以从浏览器搜索列表获取URL为例

1.1.1.用谷歌浏览器搜索百度,从弹出的页面解析百度搜索的网址。

url=“https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6”
该url对应的链接如图,即用谷歌浏览器搜索百度弹出的页面,目标就是获取该页内容。
如图为url内容

#利用get方法获取内容,提取text内容(text可以理解为文本内容),结果保存在content中。
content = requests.get(url, headers=headers).text

2.用xpath进行解析

2.1. etree结构化处理

因为用text获取到的内容为str格式,简单理解就是类似txt格式文件,没有清晰的结构,不方便定位特定的内容。(当然这种格式可以直接用正则表达式获取内容,就像搜索功能一样,这里不多赘述)

#将构造好的内容保存在a中
a=etree.HTML(content) 

2.2.获取xpath地址

  • 在谷歌浏览器右击,选择检查
  • 在弹出的界面点击左上角的小箭头,让箭头变蓝
    在这里插入图片描述
  • 点击第一条,”百度一下,你就知道“,在检查界面找到链接url,即为所需链接。
    在这里插入图片描述
  • 在所需内容上右键——copy——copy xpath,即复制到了所需的内容的xpath地址。
    在这里插入图片描述
    代码如下:
#注意,复制到的xpath只有//*[@id="1"]/h3/a[1],但是这是整个a标签的内容,注意到网址是在href属性里的,因此,用@href提取内容。
detail_url=a.xpath('//*[@id="1"]/h3/a[1]/@href')

注意,获取到的内容为一个列表,如需使用需提取。

完整代码

import requests
from lxml import etree

url="https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
content = requests.get(url, headers=headers).text
a=etree.HTML(content) 
detail_url=a.xpath('//*[@id="1"]/h3/a[1]/@href')
print(detail_url[0])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值