还记得刚开始学习爬虫的时候,曾经想拿智联练手,无奈发现点开首页竟是这样的…
一看是要手机登录了,然后就没有然后了…
后来继续学习爬虫,终于感觉学的差不多了,就回过头来攻克智联,没想到还是不知道怎么下手,但是我偶然发现:
在我的登录之后,把那个url复制之后重新打开,居然,,,打开了!!!
这可是一个大坑,简直就是发现新大陆!
接着就是爬取啦,so easy!
习惯性地想用xpath,但是查看网页源代码,发现什么都找不到,于是在Network中发现这是json,如下
接下来就是爬取啦,以下是完整代码,嘻嘻
# coding=utf-8
import requests
import json
from pymongo import MongoClient
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134',
}
def parse_url(url):
print(url)
response = requests.get(url=url, headers=headers)
return response.content.decode()
def get_content_list(json_str):
dict_ret = json.loads(json_str)
content_list = dict_ret["data"]["results"]
return content_list
def save_content_list(content_list):
# 写入txt
# with open("zhilian.txt", "a", encoding="utf8") as fp:
# for content in content_list:
# fp.write(json.dumps(content, ensure_ascii=False))
# fp.write("\n")
# print("保存成功")
# 写入MongoDB,实例化client,建立连接
client = MongoClient(host="127.0.0.1", port=27017) # 本地则括号内不用写
collection = client["test"]["zhilian2"] # 第一个中括号是库,第二个是集合
collection.insert(content_list)
print("保存成功")
def main():
url_temp = 'https://fe-api.zhaopin.com/c/i/sou?start={}&pageSize=90&cityId={}&kw={}&kt=3&=0&_v=0.37871776'
kw = input("请输入关键词:")
city = input("请输入城市:")
num = 0
while True:
url = url_temp.format(num, city, kw)
# 发送请求,获取响应
json_str = parse_url(url)
# 提取数据
content_list = get_content_list(json_str)
# 保存
save_content_list(content_list)
# 小于90则是最后一页
if len(content_list) < 90:
break
# 构造下一页url
num += 90 # 每一页的pagesize
if __name__ == '__main__':
main()
实战真的能学到更多呢,继续进步!