scrapy shell用xpath失效的问题

fancy_T 2020-01-06 11:08:40
我爬的是百度的首页:https://www.baidu.com/

<div id="ftCon">
<div class="ftCon-Wrapper">
<div id="ftConw">
<p id="lh">
<a id="setf" href="//www.baidu.com/cache/sethelp/help.html" onmousedown="return ns_c({'fm':'behs','tab':'favorites','pos':0})" target="_blank">把百度设为主页</a>

想取出这个a标签的text内容 “把百度设为主页”,

我的语句是:
response.xpath("//a[@id='setf']")
返回了 []

又试了试css和完整的路径
response.css(".setf")
response.xpath("/html/body/div[@id='wrapper']/div[@id='ftCon']/div[@class='ftCon-Wrapper']/div[@id='ftConw']/p[@id='lh']/a[@id='setf']")
也是返回了[]

看了网上的一些说法,说浏览器没有tbody这些标签,我想我这个是a标签,应该不会吧,那我直接去拿了a标签前面的div,依然不行

response.xpath("/html/body/div[@id='wrapper']/div[@id='ftCon']/div[@class='ftCon-Wrapper']/div[@id='ftConw']")

没辙了...
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰风漫天 2020-01-09
  • 打赏
  • 举报
回复
可以试试使用scrapy-splash
fancy_T 2020-01-08
  • 打赏
  • 举报
回复
引用 1 楼 冰风漫天 的回复:
用requests请求的百度首页里应该没有<a id="setf" 这个a标签吧
谢谢! 看了一下requests请求的页面,确实没有这个标签,我之前都是f12拿标签来爬的,那怎么才能拿到这个a标签呢
冰风漫天 2020-01-06
  • 打赏
  • 举报
回复
用requests请求的百度首页里应该没有<a id="setf" 这个a标签吧

37,736

社区成员

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

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