自娱丶自乐 2022-03-14 23:11 采纳率: 100%
浏览 58
已结题

如何使用pycharm的requests爬取数据,用xpath进行解析的时候为空[?(语言-python)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

job_list = tree.xpath('//div[@class = "j_joblist"]/div/a/p/span/text()')
print(job_list)

运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • 关注

    你先输出一下request+s爬取的数据,看看是否有你需要爬取的内容

    你检查下这个网页中的内容是不是通过js代码读取外部json数据来动态更新的。
    requests只能获取网页的静态源代码,动态更新的内容取不到。
    用F12查看到的代码是通过js动态更新后的内容,
    要查看网页的静态源代码应该在页面上点击右键,右键菜单中选 "查看网页源代码"。

    img


    这样看到的才是网页的静态源代码。
    如果这个网页的静态源代码中有你需要爬取的内容,就说明该页面没有动态内容,可以用requests爬取。
    否则就说明该页面的内容是动态更新的,对于动态更新的内容要用selenium 来爬取。
    或者是通过F12控制台分析页面数据加载的链接,找到真正json数据的地址进行爬取。


    如果这个网页的静态源代码中有你需要爬取的内容,但requests获取的内容中却没有,可能是requests伪造的头部信息不全。
    要在headers中添加抓包时的请求头求参数
    比如

    url = "https://xxxxxxxxxxx"
    headers={
        'User-Agent': 'xxxxxxxxxxx',
        'Host' : 'xxxxxxxxxxx',
        'Origin' : 'xxxxxxxxxxxxx',
        'Referer' : 'xxxxxxxxxxxxxx',
        'Cookie': 'xxxxxxxxxxxxxxxx'
    }
    res = requests.get(url,headers=headers)
    

    其中请求头的参数 'User-Agent','Host','Origin', 'Referer','Cookie'可以在浏览器的f12控制台的Network中看到

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型