html与实际查看的不一样

html与实际查看的不一样

我在爬取51job页面时,发现查看网页源代码的html与实际呈现出来的html不一样。

网页是“https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=”

实际呈现是这样的:http://img1.sycdn.imooc.com//climg/5f268b2a0961291a14830899.jpg

而查看网页源代码是这样的:http://img1.sycdn.imooc.com//climg/5f268b800963a2ec17580781.jpg

具体情况老师可以看看,我形容不出来,反正两边代码肯定是不一样的。

我想请问为什么会出现查看源代码与实际呈现代码不一样的情况?虽然也能通过正则提取,但是总归有疑惑,而且万一没有类似的js返回值,我应该怎么办呢?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学,你好。

1、51job网站进行了修改,与课程讲解时结构不一样了

2、后面项目中会涉及到破解js得到数据的内容,同学可先向后学习

3、同学可根据下述代码中的方法获取岗位数据

import requests
import re
import json

# 请求头
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
}

# 请求url
url = "https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html"

# 请求51job
response = requests.get(url=url, headers=header)

# 正则表达式
re_job_info_search = re.compile(r"window\.__SEARCH_RESULT__\s=\s(.*?)</script>")

# 正则匹配返回数据
job_data = re_job_info_search.search(response.text)
if job_data:
    # 获取岗位数据
    job_data_list = json.loads(job_data.group(1)).get("engine_search_result")
    for job_item in job_data_list:
        print(job_item)

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

提问者 Mr__Xin 2020-08-02 23:04:01
  1. 为什么老师爬取的时候没有这样呢?

  2. 如果js运算前的代码不含有我们想要的信息,只有运算后的代码才有我们想要的信息怎么办?这个时候应该怎么爬取?

好帮手慕美 2020-08-02 18:09:41

同学,你好。

1、浏览器的右键查看源代码看到的是网页文件最原始的代码,没有经过js运算过;F12查看到的开发者工具中的Html代码,是经过js运算过的代码。因此显示不一样。

2、不同网站在返回数据上可能会不一样,有的会返回js格式文件,有的是返回json文件

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 Mr__Xin #1
    1. 为什么老师爬取的时候没有这样呢? 2. 如果js运算前的代码不含有我们想要的信息,只有运算后的代码才有我们想要的信息怎么办?这个时候应该怎么爬取?
    2020-08-03 12:45:25
  • 好帮手慕美 回复 提问者 Mr__Xin #2
    同学,你好。同学的问题老师正在解决中,请同学耐心等待。祝学习愉快~
    2020-08-03 17:17:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
4.入门主流框架Scrapy与爬虫项目实战
  • 参与学习           人
  • 提交作业       107    份
  • 解答问题       1672    个

Python最广为人知的应用就是爬虫了,有趣且酷的爬虫技能并没有那么遥远,本阶段带你学会利用主流Scrapy框架完成爬取招聘网站和二手车网站的项目实战。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师