李从言 发表于 2020-3-22 21:38:00

xpath后获得一个空列表

本帖最后由 李从言 于 2020-3-22 21:39 编辑

用scrapy框架的 copy xpath后得到的//*[@id="post-10113"]/div/div/h1/a但是之后获取的都是空列表,也尝试过自己写,一样都是空的
后来查看网页源代码,发现太紧凑了 ,很难看,这也太为难一个新手啦。。

import scrapy


class ExampleSpider(scrapy.Spider):
    name = 'jobbole'
    allowed_domains = ['caibaojian.com']
    start_urls = ['http://caibaojian.com/']

    def parse(self, response):
      re_seletor = response.xpath('//*[@id="post-10113"]/div/div/h1/a/text()')
      pass

李从言 发表于 2020-3-22 21:40:23

有没有人能帮帮我啊{:10_247:}

李从言 发表于 2020-3-23 09:34:15

有人吗

wp231957 发表于 2020-3-23 09:41:50

李从言 发表于 2020-3-23 09:34
有人吗

网页所有内容都是动态加载的
所以,静态解析工具诸如xpath啥的都pASS掉
1、你自己去分析,他究竟是如何写的
2、使用selenium去帮你解析js

李从言 发表于 2020-3-24 11:32:21

wp231957 发表于 2020-3-23 09:41
网页所有内容都是动态加载的
所以,静态解析工具诸如xpath啥的都pASS掉
1、你自己去分析,他究竟是如 ...

你能不能打开那个网页源码帮我看看,他的格式怎么是那样的

wp231957 发表于 2020-3-24 11:49:09

李从言 发表于 2020-3-24 11:32
你能不能打开那个网页源码帮我看看,他的格式怎么是那样的

看过了,都是js动态加载,换句话说,网页内容是被js模块直接写上去的(通常所说的js渲染),是没办法静态爬取的

李从言 发表于 2020-3-25 11:50:06

wp231957 发表于 2020-3-24 11:49
看过了,都是js动态加载,换句话说,网页内容是被js模块直接写上去的(通常所说的js渲染),是没办法静态爬 ...

好,知道了,谢谢你
页: [1]
查看完整版本: xpath后获得一个空列表