我下何从 发表于 2020-6-7 13:59:32

64爬虫的scrapy 框架中的问题,抓取不了a标签中的@href,大佬求助!

本帖最后由 我下何从 于 2020-6-7 14:09 编辑

64爬虫的scrapy 框架中的问题,抓取不了a标签中的@href,大佬求助!

Twilight6 发表于 2020-6-7 14:06:09

你Xpath 语法错误了,不能直接 a // 的   //a/text

jia159753 发表于 2020-6-7 14:09:32

一天学一点,每天都有进步

{:5_90:}

我下何从 发表于 2020-6-7 14:11:13

Twilight6 发表于 2020-6-7 14:06
你Xpath 语法错误了,不能直接 a // 的   //a/text

其实是更新后的图片,斜杠问题我有上网搜过,试过都不行

Twilight6 发表于 2020-6-7 14:12:24

我下何从 发表于 2020-6-7 14:11
其实是更新后的图片,斜杠问题我有上网搜过,试过都不行

发代码吧

我下何从 发表于 2020-6-7 14:13:47

Twilight6 发表于 2020-6-7 14:06
你Xpath 语法错误了,不能直接 a // 的   //a/text

a 前面有没有斜杠都是不行的,都会显示无效参数,但是那个title就算把text()改成@title也行

我下何从 发表于 2020-6-7 14:16:10

Twilight6 发表于 2020-6-7 14:12
发代码吧

#########这是dmoz_spider.py             在64讲里面,总共需要写的模块就是左边的和items,小哥应该很熟,唔该赛
import scrapy

from tutor.items import DemozItem

class DmozSpider(scrapy.Spider):
    name='dmoz'
    allowed_domains=['tupianzj.com']
    start_urls=[
      'https://www.tupianzj.com/chuangyi/',
      'https://www.tupianzj.com/mingxingku/'
      ]


    def parse(self,response):
      sel=scrapy.selector.Selector(response)
      sites=sel.xpath('//div[@class="warpbox_con_bottom"]/ul/li')
      items=[]
      for site in sites:
            item=DemozItem()
            item['title']= site.xpath('a/text()').extract()
            item['links']l=site.xpath('a/@href').extract()
            items.append(item)

      return items
##############################
#######这是items.py

import scrapy


class DemozItem(scrapy.Item):
   
    title=scrapy.Field()
    links=scrapy.Field()
###########################
   
            

Twilight6 发表于 2020-6-7 14:21:59

我下何从 发表于 2020-6-7 14:16
#########这是dmoz_spider.py             在64讲里面,总共需要写的模块就是左边的和items,小哥应该很 ...

import scrapy

from tutor.items import DemozItem

class DmozSpider(scrapy.Spider):
    name='dmoz'
    allowed_domains=['tupianzj.com']
    start_urls=[
      'https://www.tupianzj.com/chuangyi/',
      'https://www.tupianzj.com/mingxingku/'
      ]


    def parse(self,response):
      sel=scrapy.selector.Selector(response)
      sites=sel.xpath('//div[@class="warpbox_con_bottom"]')
      items=[]
      for site in sites:
            item=DemozItem()
            item['title']= site.xpath('//@title').extract()
            item['links']=site.xpath('//@href').extract()
            items.append(item)

      return items

Twilight6 发表于 2020-6-7 14:22:35

我下何从 发表于 2020-6-7 14:16
#########这是dmoz_spider.py             在64讲里面,总共需要写的模块就是左边的和items,小哥应该很 ...

试试看?

我下何从 发表于 2020-6-7 14:28:06

Twilight6 发表于 2020-6-7 14:22
试试看?

小哥,还是有同样的问题,好像就是href有问题啊

Twilight6 发表于 2020-6-7 14:29:28

我下何从 发表于 2020-6-7 14:28
小哥,还是有同样的问题,好像就是href有问题啊

你把你代码 items 那后面的 l 去掉...

我下何从 发表于 2020-6-7 14:38:44

Twilight6 发表于 2020-6-7 14:29
你把你代码 items 那后面的 l 去掉...

hhhhh我为什么总出现这种弱智问题
可以了也,可是为什么呢?定位模糊了反而可以了??

Twilight6 发表于 2020-6-7 14:40:27

我下何从 发表于 2020-6-7 14:38
hhhhh我为什么总出现这种弱智问题
可以了也,可是为什么呢?定位模糊了反而可以了??

哈哈,你Xpath 语法都错了 就算刚刚改了 也不行 ,改刚刚这样才行

liuzhengyuan 发表于 2020-6-7 14:42:15

jia159753 发表于 2020-6-7 14:09


我下何从 发表于 2020-6-7 14:43:09

Twilight6 发表于 2020-6-7 14:40
哈哈,你Xpath 语法都错了 就算刚刚改了 也不行 ,改刚刚这样才行

我发现我实力眼瞎,把那个l去掉,一开始就已经行了!!!!!谢谢小哥

Twilight6 发表于 2020-6-7 14:44:51

我下何从 发表于 2020-6-7 14:43
我发现我实力眼瞎,把那个l去掉,一开始就已经行了!!!!!谢谢小哥

{:10_258:}噗好吧
页: [1]
查看完整版本: 64爬虫的scrapy 框架中的问题,抓取不了a标签中的@href,大佬求助!