为什么我返回的是一个空列表呀?
import requests
from lxml import etree
import json
#我们要请求的URL,地点北京,第一页数据
url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='
# 获取网站的请求头 要注意空格的情况
header = {
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding":"gzip, deflate, br",
"Accept-Language":"zh-CN,zh;q=0.9",
"Connection":"keep-alive",
# "Host":"search.51job.com",
# "Upgrade-Insecure-Requests":"1",
"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Mobile Safari/537.36"
}
# 进行数据请求
response = requests.get(url=url, headers=header)
response.encoding = 'urf-8'
# print(response.text)
# 存放爬下来的文本数据 返回的是一个element 对象
html_51job = etree.HTML(response.text)
# print(html_51job)
# 单引号双引号要注意 获取职位列表
all_div = html_51job.xpath("//div[@id='resultList']//div[@class='el']")
print(all_div)我是跟着老师的代码走的,不知道为什么,我打印出的结果确实一个空列表呢?这是为什么,网站都一样啊
/Users/carline/PycharmProjects/beautifulsoup/venv/bin/python /Users/carline/PycharmProjects/beautifulsoup/learning/hand_51job.py [] Process finished with exit code 0
15
收起
正在回答
1回答
同学你好:
同学的user-agent出现问题。

是手机访问的请求头。我们使用的是浏览器的请求头。出现的正则匹配不同。
学习阶段介意按照老师的步骤,可以使用下面的user-agent即可:
"User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3610.2 Safari/537.36",
如果我解决了同学的问题,请采纳!学习愉快^_^。
4.入门主流框架Scrapy与爬虫项目实战
- 参与学习 人
- 提交作业 107 份
- 解答问题 1672 个
Python最广为人知的应用就是爬虫了,有趣且酷的爬虫技能并没有那么遥远,本阶段带你学会利用主流Scrapy框架完成爬取招聘网站和二手车网站的项目实战。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星