为什么用python扒取出来的数据为空列表_如何解决python xpath爬取页面得到空列表(语法都对的情况下)...

本文探讨了使用Python进行网页抓取时遇到数据为空列表的问题,原因可能是动态页面、反爬虫机制以及源码与实际页面的差异。通过实例展示了在百度首页使用XPath抓取“新闻”一词时,因页面元素ID变化导致的抓取失败,最终通过调整XPath表达式成功获取数据。
摘要由CSDN通过智能技术生成

引言:

很多网页呈现给我们的静态页面,但是实际上是由服务器端的动态页面生成的。再加上网站设有反爬虫机制,所以抓取到的页面不一定和源码相同。

所以!!从源码里copy xpath,不一定能取到数据!

实例:

非常的简单,从百度首页上,抓取“新闻”这两个字。

import requests

from lxml import etree

url="http://www.baidu.com"

ua={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}

bd = requests.get(url, headers=ua)

bd.encoding='utf-8'

接下来打印一下我们抓取到的页面

print(bd.text)

看不出来啥,当然了,不出问题的话,你会以为这就是页面的源码。

然后我们试一下打印“百度一下“这个按钮的文本。

numl=html.xpath('//*[@id="su"]//@value')

输出:百度一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值