当前位置: 首页 > news >正文

聊城网站推广品牌石家庄企业网站

聊城网站推广品牌,石家庄企业网站,网站开发速成班,厦门医院网站建设转载#xff1a;Python多进程抓取拉钩网十万数据准备安装Mongodb数据库其实不是一定要使用MongoDB#xff0c;大家完全可以使用MySQL或者Redis#xff0c;全看大家喜好。这篇文章我们的例子是Mongodb#xff0c;所以大家需要下载它。在Windows中。由于MongoDB默认的数据目录…转载Python多进程抓取拉钩网十万数据准备安装Mongodb数据库其实不是一定要使用MongoDB大家完全可以使用MySQL或者Redis全看大家喜好。这篇文章我们的例子是Mongodb所以大家需要下载它。在Windows中。由于MongoDB默认的数据目录为C:datadb建议大家直接在安装的时候更改默认路径为C:MongoDB.然后创建如下目录文件C:datalogmongod.log //用于存储数据库的日志C:datadb //用于存储数据库数据然后在C:MongoDB文件夹下安装 Mongodb 路径创建配置文件mongod.cfg。并且在配置文件里写入以下配置大家记住要打开文件后缀名不然我们可能创建了一个mongod.cfg.txt文件。最后我们需要打开管理员权限的 CMD 窗口执行如下命令安装数据库成服务C:mongodbbinmongod.exe--config C:mongodbmongod.cfg--install设置为服务后需要在管理员权限打开的windows cmd窗口用服务的方式启动或停止MongoDB。net start mongodb //启动mongodb服务net stop mongodb //关闭mongodb服务好了安装好Mongodb数据库后我们需要安装PyMongo它是MongoDB的Python接口开发包。pip install pymongo推荐下我自己创建的Python学习交流群960410445开始准备完成后我们就开始浏览拉勾网。我们可以发现拉勾网所有的招聘职位都在左侧分类里。如图我们先获取首页HTML文件:然后我们打开开发者工具找到招聘职业的位置。大家还记得BeautifulSoup的CSS选择器吧我们直接使用.select()方法获取标签信息。输出结果[a classcurrhrefhttps://www.lagou.com/zhaopin/Java/data-lg-tj-cididnulldata-lg-tj-id4O00data-lg-tj-no0101Java/a, a classcurrhrefhttps://www.lagou.com/zhaopin/C%2B%2B/data-lg-tj-cididnulldata-lg-tj-id4O00data-lg-tj-no0102C/a, # ... 省略部分 https://www.lagou.com/zhaopin/fengxiankongzhizongjian/ data-lg-tj-cididnull data-lg-tj-id4U00 data-lg-tj-no0404风控总监, https://www.lagou.com/zhaopin/zongcaifuzongcai/ data-lg-tj-cididnull data-lg-tj-id4U00 data-lg-tj-no0405副总裁]260获取到所有职位标签的a标签后我们只需要提取标签的href属性和标签内内容就可以获得到职位的招聘链接和招聘职位的名称了。我们准备信息生成一个字典。方便我们后续程序的调用。这里我们用zip函数同时迭代两个list。生成一个键值对。接下来我们可以随意点击一个职位分类分析招聘页面的信息。分页我们首先来分析下网站页数信息。经过我的观察每个职位的招聘信息最多不超过 30 页。也就是说我们只要从第 1 页循环到第 30 页就可以得到所有招聘信息了。但是也可以看到有的职位招聘信息页数并不到 30 页。以下图为例如果我们访问页面https://www.lagou.com/zhaopin/Java/31/也就是第 31 页。我们会得到 404 页面。所以我们需要在访问到404页面时进行过滤。ifresp.status_code 404: pass这样我们就可以放心的 30 页循环获得每一页招聘信息了。我们的每一页url使用format拼接出来link {}{}/.format(url, str(pages))获取信息获取到全部信息后我们同样的把他们组成键值对字典。组成字典的目的是方便我们将全部信息保存到数据库。保存数据保存数据库前我们需要配置数据库信息这里我们导入了pymongo库并且与MongoDB建立连接这里是默认连接本地的MongoDB数据。创建并选择一个数据库lagou并在这个数据库中创建一个table即url_list。然后我们进行数据的保存ifurl_list.insert_one(data): print(保存数据库成功, data)如果保存成功打印出成功信息。多线程爬取十万多条数据是不是抓取的有点慢有办法我们使用多进程同时抓取。由于Python的历史遗留问题多线程在Python中始终是个美丽的梦。我们把之前提取职位招聘信息的代码写成一个函数方便我们调用。这里的parse_link()就是这个函数他就收职位的 url 和所有页数为参数。我们get_alllink_data()函数里面使用for循环 30 页的数据。然后这个作为主函数传给多进程内部调用。这里是一个pool进程池我们调用进程池的map方法.map(func, iterable[,chunksizeNone])多进程Pool类中的map方法与Python内置的map函数用法行为基本一致。它会使进程阻塞直到返回结果。需要注意虽然第二个参数是一个迭代器但在实际使用中必须在整个队列都就绪后程序才会运行子进程。join()方法等待子进程结束后再继续往下运行通常用于进程间的同步.反爬虫处理如果大家就这样整理完代码直接就开始抓取的话。相信在抓取的不久后就会出现程序中止不走了。我刚刚第一次中止后我以为是网站限制了我的 ip。于是我做了如下改动。
http://www.yutouwan.com/news/248474/

相关文章:

  • 广西工程建设质量安全管理协会网站中国电子商务平台
  • 怎么样创办一个网站网站开发软件选择
  • 长沙银行网站建设快递网站建设需求分析
  • 成都建站免费模板女生零基础可以学什么技术
  • 保定市建设局安监网站企业微营销网站
  • 宿州市埇桥区建设局网站帮一个企业做网站流程
  • 邓州网站制作中国制造网站上的聊天怎么做
  • 专业的常州做网站招商网站开发
  • 建设通网站信息有效吗wordpress generator
  • 南昌市建设局官方网站虚拟主机不能通过什么架设网站
  • 网站怎么做访问量统计多语言网站如何做
  • 网站建设的功能需求文档手机网站智能建站
  • 苏州吴中长桥网站建设工信部清理未备案网站
  • 中国互联网站建设中心建站中心中国建设招标信息网站
  • 丰县住房与城乡建设部网站专业做网站排名多少钱
  • 网站建设方案论文1500作品集展示的网站
  • 做网站的后台开发需要会些什么乐清做网站价格
  • 做任务网站排行榜余杭住房和城乡建设局网站
  • 网销的网站建设与管理十堰网络科技有限公司
  • 正规网站设计制作公司百度信息
  • 湖南建筑信息网一体化平台深圳搜狗seo
  • 湘潭网站公司沈阳论坛建站模板
  • 互联网营销常用网站网络营销策划书的范文
  • 网站建设标题快速搭建网页
  • 无锡做网站品牌公司wordpress rss 添加
  • 奇缦科技珠海网站建设优化中国交通建设股份有限公司官网
  • 常州网站公司网站装饰公司资质
  • 婚礼策划网站建设对网站开发流程的了解
  • 免费网站建设图书下载网站模板开发平台怎么做
  • 网站被清空了怎么办如何制作外贸网站