叫我小唐就好了 2021-12-05 01:29 采纳率: 100%
浏览 48
已结题

爬虫 有没有人告诉我怎么在这里显示加载中用了timesleep等待了一样显示等待和隐式等待都用了

img


import urllib.request
import requests
import os
from lxml import etree
import re
import time

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}

def spider(base_url,headers):
    data1 = urllib.request.Request(base_url,headers=headers)

    data2 = urllib.request.urlopen(data1).read().decode('gbk')
    print(data2)
    selector = etree.HTML(data2)
    job_list = selector.xpath("/html/body/div[1]/div[2]/div[2]/div[2]/div[1]/div[1]/span")
    print(job_list)
url = "https://search.51job.com/list/010000%252c020000%252c030200%252c040000%252c080200,000000,0121,01,9,99,+,2,99.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare="
spider(url,headers)

  • 写回答

2条回答 默认 最新

  • 关注

    你这个网页中的内容是通过js代码读取外部json数据来动态更新的。
    requests只能获取网页的静态源代码,动态更新的内容取不到。
    用requests只是获取网页的静态源代码。不会执行页面中的js代码,你用time.sleep()等待是没有用的。
    只有用selenium 打开真正的浏览器。 才会执行页面中的js代码,用time.sleep()等待才有用。

    或者是通过F12控制台分析页面数据加载的链接,找到真正json数据的地址进行爬取。

    在页面上点击右键,右键菜单中选 "查看网页源代码"。

    img


    这样看到的才是网页的静态源代码。
    如果这个网页的静态源代码中有你需要爬取的内容,就说明该页面没有动态内容,可以用requests爬取。
    否则就说明该页面的内容是动态更新的,要用selenium 来爬取.

    你题目的解答代码如下:

    from selenium import webdriver
    from lxml import etree
    import time
    def spider(base_url):
        driver = webdriver.Chrome()
        driver.get(base_url)
        time.sleep(5)
        data2 = driver.page_source
        print(data2)
        selector = etree.HTML(data2)
        job_list = selector.xpath("/html/body/div[2]/div[3]/div/div[2]/div[4]/div[1]/div/a/p[1]/span[1]/text()")
        print(job_list)
    url = "https://search.51job.com/list/010000%252c020000%252c030200%252c040000%252c080200,000000,0121,01,9,99,+,2,99.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare="
    spider(url)
    

    img

    如有帮助,望采纳!谢谢!

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

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀