国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python爬蟲框架Scrapy實例代碼

2020-02-22 23:21:13
字體:
來源:轉載
供稿:網友

目標任務:爬取騰訊社招信息,需要爬取的內容為:職位名稱,職位的詳情鏈接,職位類別,招聘人數,工作地點,發布時間。

一、創建Scrapy項目

scrapy startproject Tencent

命令執行后,會創建一個Tencent文件夾,結構如下

二、編寫item文件,根據需要爬取的內容定義爬取字段

# -*- coding: utf-8 -*-import scrapyclass TencentItem(scrapy.Item):  # 職位名  positionname = scrapy.Field()  # 詳情連接  positionlink = scrapy.Field()  # 職位類別  positionType = scrapy.Field()  # 招聘人數  peopleNum = scrapy.Field()  # 工作地點  workLocation = scrapy.Field()  # 發布時間  publishTime = scrapy.Field()

三、編寫spider文件

進入Tencent目錄,使用命令創建一個基礎爬蟲類:

# tencentPostion為爬蟲名,tencent.com為爬蟲作用范圍scrapy genspider tencentPostion "tencent.com"

執行命令后會在spiders文件夾中創建一個tencentPostion.py的文件,現在開始對其編寫:

# -*- coding: utf-8 -*-import scrapyfrom tencent.items import TencentItemclass TencentpositionSpider(scrapy.Spider):  """  功能:爬取騰訊社招信息  """  # 爬蟲名  name = "tencentPosition"  # 爬蟲作用范圍  allowed_domains = ["tencent.com"]  url = "http://hr.tencent.com/position.php?&start="  offset = 0  # 起始url  start_urls = [url + str(offset)]  def parse(self, response):    for each in response.xpath("http://tr[@class='even'] | //tr[@class='odd']"):      # 初始化模型對象      item = TencentItem()      # 職位名稱      item['positionname'] = each.xpath("./td[1]/a/text()").extract()[0]      # 詳情連接      item['positionlink'] = each.xpath("./td[1]/a/@href").extract()[0]      # 職位類別      item['positionType'] = each.xpath("./td[2]/text()").extract()[0]      # 招聘人數      item['peopleNum'] = each.xpath("./td[3]/text()").extract()[0]      # 工作地點      item['workLocation'] = each.xpath("./td[4]/text()").extract()[0]      # 發布時間      item['publishTime'] = each.xpath("./td[5]/text()").extract()[0]      yield item    if self.offset < 1680:      self.offset += 10    # 每次處理完一頁的數據之后,重新發送下一頁頁面請求    # self.offset自增10,同時拼接為新的url,并調用回調函數self.parse處理Response    yield scrapy.Request(self.url + str(self.offset), callback = self.parse)

四、編寫pipelines文件

# -*- coding: utf-8 -*-import jsonclass TencentPipeline(object):  """     功能:保存item數據   """  def __init__(self):    self.filename = open("tencent.json", "w")  def process_item(self, item, spider):    text = json.dumps(dict(item), ensure_ascii = False) + ",/n"    self.filename.write(text.encode("utf-8"))    return item  def close_spider(self, spider):    self.filename.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巢湖市| 清涧县| 台南市| 石屏县| 临潭县| 措美县| 黔西县| 汕尾市| 家居| 邵东县| 安阳县| 芒康县| 嘉兴市| 于都县| 阜新| 荆门市| 余庆县| 阿拉善左旗| 蓝田县| 三台县| 正安县| 雷波县| 西峡县| 惠州市| 栾川县| 正蓝旗| 莎车县| 安达市| 安顺市| 高雄市| 鄯善县| 横峰县| 邓州市| 岳普湖县| 吉林市| 平潭县| 浮山县| 龙口市| 绥阳县| 廉江市| 资兴市|