为什么我返回的是一个空列表呀?
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 星