scrapy爬虫小练习-腾讯招聘信息爬取

本文介绍如何使用Scrapy框架创建爬虫项目,以腾讯招聘网站为例,详细讲解了从项目搭建到数据抓取、解析及存储至MongoDB的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 创建scrapy项目,在cmd中找到需要创建项目的目录,运行scrapy startproject spidername即会自动创建好项目的目录结构,然后再在pycharm中打开即可。
    这里我们需要尝试爬取腾讯招聘网站上的信息:
  2. 先依据以上创建爬虫:scrapy genspider tencent_hr tencent.com
    在这里插入图片描述
    创建完成后的目录结构如图所示
  3. 由于需要用到mongo存储爬取到的数据,需要提前安装mongo,并安装pymongo:pip install pymongo,本人这里是在windows下测试,所以需要把mongodb配置为系统服务,开机自启,具体配置可以参考:https://blog.youkuaiyun.com/heshushun/article/details/77776706
  4. 现编写具体爬取数据的爬虫,代码如下:
class TencentHrSpider(scrapy.Spider):
    name = 'tencent_hr'
    allowed_domains = ['tencent.com']
    start_urls = ['https://hr.tencent.com/position.php?keywords=&lid=0&tid=87']

    def parse(self, response):
        tr_list = response.xpath('//table[@class="tablelist"]//tr')[1:-1]
        for tr in tr_list:
            item = {}
            item["title"] = tr.xpath('./td[1]/a/text()').extract_first()
            item["position_type"] = tr.xpath('./td[2]/text()').extract_first()
            item["number"] = tr.xpath('./td[3]//text()').extract_first()
            item["city"] = tr.xpath('./td[4]/text()').extract_first()
            item["publist_date"] = tr.xpath('./td[5]/text()').extract_first()
            yield item

通过步骤3可以将爬取到的数据解析封装为一个个的item,然后传递到后面,由pipeline进行处理,这里我们声明一个pipeline对item进行处理直接存储到mongo中,代码如下:

from pymongo import MongoClient
import logging

client = MongoClient()
collection = client["spider"]["test"]

class TencentPipeline(object):
    def process_item(self,item,spider):
        if(spider.name=="tencent_hr"):
            collection.insert(item)
        return item

完成以上代码后,直接在cmd中运行:scrapy crawl tencent_hr,结束后通过命令行进入mongo shell,查看对应数据即可。
  这个小项目相对简单,因为爬取过程中发现腾讯招聘官网这里貌似反爬虫机制没咋做,估计一般也很少有人会去爬取他们的数据,最多是像这种学习测试用的例子,接下来我们要进阶做的就是爬取拉勾上的数据,相比较而言,估计是被爬的多了,拉勾上的反爬虫限制就好一些,所以需要做的调整和应对会更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值