博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests + Beautiful 爬取boss直聘
阅读量:5938 次
发布时间:2019-06-19

本文共 2068 字,大约阅读时间需要 6 分钟。

import requestsfrom bs4 import BeautifulSoupimport jsonimport codecsdef GetHtmlText(url):    try:        headers = {
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36"} #随机构造请求头,增加一定的反反爬能力。 r = requests.get(url, timeout=5, headers=headers) r.raise_for_status() #判断r若果不是200,产生异常requests.HTTPError异常 r.encoding = r.apparent_encoding return r.text #http响应内容的字符串形式,即URL返回的页面内容 except: return Nonedef fillJobList(html): soup = BeautifulSoup(html,'html.parser') #解析网页源代码 dic = {} test_list = [] for job in soup.findAll('div',{
'class':'info-primary'}): try: position = job.find('div',{
'class':'job-title'}).text pay = job.find('span',{
'class':'red'}).text edu = job.find('p').text dic['position'] = position dic['pay'] = pay dic['edu'] = edu detail_url = job.find('a').attrs['href'] detail_html = GetHtmlText('https://www.zhipin.com'+ detail_url) detail_soup = BeautifulSoup(detail_html, 'html.parser') detail = detail_soup.find('div', {
'class': 'text'}).text.strip() dic['detail'] = detail # print(dic) test_list.append(dic) except: continue return test_listdef write(dic): with open("data.json", "w", encoding='utf-8') as f: f.write(json.dumps(dic, ensure_ascii=False)) # with open('jobs.json', 'w', encoding='utf-8') as f: # fp = json.dumps(dic, ensure_ascii=False) # f.write(fp)def main(): keywords = input('输入职位:') pages = int(input('获取页数:')) for i in range(1, pages + 1): url = 'https://www.zhipin.com/c101270100-p100109/?query=' + keywords + '&page=' + str(i) html = GetHtmlText(url) print(fillJobList(html)) print(len(fillJobList(html))) #for i in fillJobList(html): # write(i)if __name__ == '__main__': main()复制代码

转载于:https://juejin.im/post/5be04aadf265da614c4c4276

你可能感兴趣的文章
windows下命令行终端使用rz上传文件参数详解
查看>>
信息隐藏技术
查看>>
nginx禁止未绑定域名访问返回444
查看>>
c++重载后置++和--
查看>>
PostgreSQL远端访问
查看>>
WIN7如何替换开机登录画面
查看>>
AAuto如何发布EXE文件
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
Cross-compilation using Clang
查看>>
BZOJ 2502: 清理雪道 [最小流]
查看>>
营销系统--手动补偿
查看>>
图标字体设计
查看>>
【转】Principles of training multi-layer neural network using backpropagation
查看>>
python字符串操作
查看>>
基础才是重中之重~Dictionary<K,V>里V的设计决定的性能
查看>>
查看Oracle中存储过程长时间被卡住的原因
查看>>
完美解决 IOS系统safari5.0 浏览器页面布局iframe滚动栏失效问题
查看>>
升级gitk后,Error in startup script: unknown color name "lime"
查看>>
并查集hdu1232
查看>>
改动Androidproject的名称(非Eclipse重命名)
查看>>