在 spiders 文件夹里面的一个文件
def parse(self, response): # mtitem = MafengwoItem() datas = json.loads(response.body)#将 Json 格式数据处理为字典类型 datas = datas['html']
datas 这块打印出来的信息是 html 的 就像这样的
大概这样的 20 条信息,不是数组
不知道怎么样获取 A 标签里面的数据,有用 for
for data_item in titleall: mtitem['title'] = data_item.xpath("//a/@href").extract() #标题
但这样获取到的值是空值,所以想请教一下
小白一枚
|      1Colorful OP datas 这块打印出来的信息是 html 的 就像这样的 <a class="item clearfix" href="*****" target="_blank">标题标题</a> 就像这样的,大概 20 条吧 我只是简写了而已,里面有一些标签什么的 但获取到的数据不是数组,就是全部是 html | 
|  |      2zhzy      2020-03-08 11:54:00 +08:00 via iPhone 就不能用 html 解析器吗……BeautifulSoup 之类的 | 
|      4nicevar      2020-03-08 12:17:12 +08:00 描述的不是很清楚,response.body 是 json 数据?没必要用什么 BeautifulSoup,你要获取标题应该用 text 才是,不是 @href,这个是获取 url 的 | 
|      5Colorful OP @nicevar json.loads(response.body) 出来的数据是 HTML,大概是这样的 <a class="item clearfix" href="*****" target="_blank">标题标题</a> | 
|      6scdylk      2020-03-08 12:35:56 +08:00 via iPhone 去标签内的文字  xpath 后面要加 text ()好 或者 string () | 
|      7nicevar      2020-03-08 12:36:12 +08:00 @Colorful 你用 json.loads 干啥, response 直接就能进行 xpath 操作了, 按你的要求筛选出 a 标签列表,直接挨个读取 a 标签的 text 就能拿到 title 了 | 
|      8scdylk      2020-03-08 12:37:48 +08:00 via iPhone 没打完…取属性的话 不用加 extract ()   好像是这样 有段时间没用了 | 
|      9tozp      2020-03-08 13:04:52 +08:00 xpath 是旧版的应用,现在都用新版了 data_item.css('a::text').extract()就是获取 a 里面的所有数据,.extract_first()就是只获取第一个数据。 |