Python爬虫定位标签时,返回空列表

忑忠忐 2019-05-10 09:49:39
a=html.xpath('//li[@class="j_thread_list clearfix"]') liTags = soup.find_all('li', attrs={'class': ' j_thread_list clearfix'}) 用xpath和BeauSoup 抓取这个标签都跪了,结果都是返回一个空列表,这是怎么回事啊,困扰好久了 特别是xpath,经常遇到爬取某个标签运行代码返回空列表,但是使用Chrome 的xpath helper 却能正常捕捉,并且有时候使用别人的原码也会出现这种情况,想知道是哪方面的原因,软件有问题?还是编程哪个细节漏了 使用别人以前的原码也出现过这个问题,某个标签输出返回空列表,后面具体内容就抓不出来了。 打算的是,编个程序,爬取某个贴吧,前3页,把每个帖子(除置顶帖)的标题,作者,创建时间和链接爬取出来,返回成一个列表,里面的元素是每个帖子信息合成的一个字典 分别用 bs4 xpath,正则表达式做 结果做前两个都在定位那个标签时跪了,一直返回空列表 路过的大佬,能详细解答一下吗?尽量从这类问题讲,不限于这个问题
...全文
2144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一帆丶 2019-05-15
  • 打赏
  • 举报
回复
首先确定连接是否响应了,然后确定解码的网页里是否能看到自己要的内容,如果上面都没问题。那就可以肯定是定位问题了,xpath定位先看下是否有tbody有的话就删除,如果还是返回空,就从最后一个tbody开始找定位,这时候确定定位是唯一的,却还是返回空,那就基本是你写的xpath定位有问题了。那就换正则或者bs4+正则吧,不需要死守自己不熟悉的方法。
张同学不秃头 2019-05-14
  • 打赏
  • 举报
回复
你看一下网页源码 看看你抓的这个是不是动态加载的
blog_1103 2019-05-14
  • 打赏
  • 举报
回复
现在好多网页都会设置反爬干扰的,里面的同一位置的标签名都不是唯一的,有的话你能爬出数据,没有坑定是空啊,而且直接用别人的肯定会出各种问题啊,各个网站定期维护改动,你得实时分析原网页更改爬虫啊,没有一个爬虫可以写出来就一直不用修改的
  • 打赏
  • 举报
回复
元素定位时,不要使用元素的动态属性(每次刷新页面,属性值都会变)定位吧
  • 打赏
  • 举报
回复
xpath在有些元素时是定位不到的,像table中的tbody。
有时候xpath helper可以定位到,但是拿下来就不行了。
还是多试试
yshuise 2019-05-11
  • 打赏
  • 举报
回复
特别是xpath,经常遇到爬取某个标签运行代码返回空列表,但是使用Chrome 的xpath helper 却能正常捕捉,并且有时候使用别人的原码也会出现这种情况,想知道是哪方面的原因,软件有问题?还是编程哪个细节漏了
==============================
是这样的。但是最好显示那个同其他的都不一样。
Gavin_Hall 2019-05-10
  • 打赏
  • 举报
回复
如果你学到Ajax和selenium的话应该可以解决这个问题,因为可能你要抓取的这个页面是动态加载的。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧