目的:自己输入指定地方,指定职业,起始页数,程序会自动打印页面的所有信息。
实现过程:这次程序的代码跟以往的都不一样,这次也是我第一次使用面向对象式编程,并且并不是分析网页代码,分析json字符串得到数据
下面是代码

import requests,random,re
import urllib
user_agent = ["Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)","Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0","Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52"
]
headers={"User-Agent": random.choice(user_agent)}
class zhilianzhaopin(object):'''设置一个类'''url='https://fe-api.zhaopin.com/c/i/sou?'#设置一个url属性,这个属性值时链接的默认属性#url中不变的内容,要和参数进行拼接组成完整的urldef __init__(self,jl,kw,star_page,end_page):'''初始化函数,表示每次使用这个类时,这里的参数都要再次进行重新初始化'''self.jl=jlself.kw=kwself.star_page=star_pageself.end_page=end_pageself.list=[]def handle_request(self,page):data={'cityId':self.jl,#这里的self.jl引用的就是初始化函数的值'kw':self.kw,#同上'kt':page}url_now=self.url+urllib.parse.urlencode(data)print(url_now)#shel.url引用类属性 "urllib.parse.urlencode(data)"的作用是将data数据和类属性组合到一起,组成一个真正想要得到的链接request=requests.get(url_now,headers=headers).text#读取网页源代码return request#返回网页源代码def parsse(self,conetent):'''查找网页数据,coentent属性就是要查找的网页源代码'''print('*'*100)jobname_list=re.findall(r'"jobName":"(.*?)"',conetent,re.S)cmpnyname_list=re.findall('"company":{"name":"(.*?)","number"',conetent,re.S)cmpnyurl_list=re.findall('"url":"(.*?)"',conetent,re.S)salary_list=re.findall('"salary":"(.*?)"',conetent,re.S)type_list=re.findall('"type":{"name":"(.*?)"}',conetent,re.S)updatedate_list=re.findall('"updateDate":"(.*?)"',conetent,re.S)'''查找具体的数据'''for a,b,c,d,e,f in zip(jobname_list,cmpnyname_list,cmpnyurl_list,salary_list,type_list,updatedate_list):#在这里出现问题,程序并没有报错但是下面的print不能够显示。data={'职位':a,'公司名称':b,'公司链接':c,'工资':d,'公司性质':e,'更新时间':f}print(data)self.list.append(data)def run(self):'''主管运行整个属性'''for page in range(self.star_page,self.end_page+1):#设置循环页数request=self.handle_request(page)#将page引用到查找网页源代码的那个函数上,并赋值到request变量上content=request#再次定义一个变量self.parsse(content)#将上面的获取到网页源代码引用parsse函数中
def main():jl=input('请输入工作地点:')kw=input('请输入关键词:')star_page=int(input('请输入起始页码:'))end_page=int(input('请输入结束页码:'))spider=zhilianzhaopin(jl,kw,star_page,end_page)#将类进行实例化,因为里面的jl,kw等是我们上面定义的初始化函数,所有要指定相应的值spider.run()#调用类中run函数if __name__ == '__main__':main()#指定main函数

程序有漏洞

下面是我根据上面面向对象编程对我之前的程序进行修改后的代码

目的指定标签,和起始页面下载百度图片

import requests,time,re,random
user_agent = ["Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)","Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0","Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52"
]
headers={"User-Agent": random.choice(user_agent)}
class baiduimg():url='http://image.baidu.com/search/flip?tn=baiduimage'def __init__(self,wd,star_page,end_page):self.wd=wdself.star_page=star_pageself.end_page=end_pagedef get_url(self,page):'''查找网页链接'''data={'word':self.wd,'pn':page}request=requests.get(self.url,data).textreturn requestdef get_url_down(self,contens):'''查找网页中的图片链接'''urls_list = re.findall(r' "objURL":"(.*?)"',contens,re.S)return urls_listdef down_list_img(self,url_list):'''下载图片链接到指定文件夹'''for i in url_list:time.sleep(1)title = i.split('/')[-1]  # 取链接"/"后的最后一段,作为图片名称img_end = re.search('(.jpg|.gif|.png|.jpeg|.tif|.ico)$', title)  # 在图片名称中进行查找,如果没有则返回Noneif img_end == None:  # 进行判断,如果返回结果为Nonetitle = title + '.jpg'  # 则在名字后面加上'.jpg'后缀print('正在下载{}'.format(i))img = requests.get(i, headers=headers, verify=False).content  # 读取下载链接并返回二进制形式try:with open('/users/qq/Desktop/百度图片下载/{}'.format(title), 'wb') as f:  # 打开文件夹以写入二进制的形式创建文件f.write(img)  # 写入二进制except:passf.close()def run(self):'''执行上面的函数'''for page in range(self.star_page,self.end_page+1):data=self.get_url(page)url_list=self.get_url_down(data)self.down_list_img(url_list)
def main():kw=input('请输入想要下载的类型:')star_page=int(input('请输入开始页:'))end_page=int(input('请输入结束页:'))down=baiduimg(kw,star_page,end_page)#将类进行实例化操作down.run()
if __name__ == '__main__':main()#执行函数

python学习笔记爬虫——爬取智联招聘信息相关推荐

  1. 智联招聘python岗位_Python爬虫爬取智联招聘职位信息

    import urllib2 import re import xlwt '''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!''' cl ...

  2. (转)python爬虫实例——爬取智联招聘信息

    受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...

  3. python爬虫实例——爬取智联招聘信息

    受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...

  4. python+selenium爬取智联招聘信息

    python+selenium爬取智联招聘信息 需求 准备 代码 结果 需求 老板给了我一份公司名单(大概几百家如下图),让我到网上看看这些公司分别在招聘哪些岗位,通过分析他们的招聘需求大致能推断出我 ...

  5. 【Python爬虫案例学习20】Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 ####基本环境配置: Python版本:2.7 开发工具:pycharm 系统:win10 ####相关模块: im ...

  6. Python爬虫爬取智联招聘(进阶版)

    运行平台: Windows   Python版本: Python3.6   IDE: Sublime Text    其他工具:  Chrome浏览器 0.写在前面的话 本文是基于基础版上做的修改,如 ...

  7. Python | 爬虫爬取智联招聘(进阶版)

    上一篇文章中<Python爬虫抓取智联招聘(基础版)>我们已经抓取了智联招聘一些信息,但是那些对于找工作来说还是不够的,今天我们继续深入的抓取智联招聘信息并分析,本文使用到的第三方库很多, ...

  8. python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...

  9. Python爬虫爬取智联招聘!谁说Python岗位少的?

    运行平台: Windows   Python版本: Python3.6   IDE: Sublime Text    其他工具:  Chrome浏览器 0.写在前面的话 本文是基于基础版上做的修改,如 ...

最新文章

  1. boost::hana::experimental::type_name用法的测试程序
  2. Junit单元测试学习笔记一
  3. NYU Google: 知识蒸馏无处不在,但它真的有用吗?
  4. Qt工作笔记-profile中INSTALLS的使用
  5. JSP页面报错:“Uncaught SyntaxError: Unexpected token ”
  6. python语言的读法-Python语言的特点及自学建议
  7. python快速编程入门课本中的名片管理器_Python-名片管理器
  8. 寻找影响免疫浸润细胞的基因(一)
  9. 推荐术语:CPM、CPC、CPA、CPI、CTR、CPV、CVR
  10. 搜索留痕软件_这款原价905台币的专业软件,请收好
  11. 如何在线压缩图片大小?图片上传太大怎么缩小?
  12. HAproxy正向代理配置
  13. 知识点(1):OSI网络模型
  14. OpenGL ES之glEnable和glDisable函数
  15. 通过钉钉机器人发送群消息通知
  16. centos7下安装nginx
  17. 【编译原理核心知识点总结】第三章、正则文法、NFA、DFA
  18. 【总结】包和模块(2022.4.27)
  19. 微信小程序判断input内容不能为空
  20. Hugo 主题 Hugo-book 中英文搜索配置

热门文章

  1. 我们不生产代码,我们是代码的搬运工
  2. 剑指Offer49—丑数
  3. 第二章 大数据如此重要,引无数英雄竞折腰
  4. 尚硅谷 jQuery 笔记(张晓飞 2018)
  5. C语言创建函数案例:求长方体体积
  6. 解决ssh packet_write_wait: Connection to 192.168.xx.xx port 22: Broken pipe的问题
  7. 搜狗搜索曝光“搜狗商店” 人工智能概念产品可提升人类能力
  8. “鸡”不可失—— 咕咕机3代VS2代对比测评
  9. py可执行文件反编译教程--exe转换py
  10. 【实验小技巧】github使用技巧