国产探花免费观看_亚洲丰满少妇自慰呻吟_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()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江孜县| 阜宁县| 永康市| 河北省| 威海市| 若尔盖县| 西青区| 大石桥市| 无锡市| 修武县| 凤山县| 扶风县| 海晏县| 伊春市| 东山县| 雷州市| 招远市| 阳山县| 嘉定区| 萨嘎县| 杭锦后旗| 环江| 德惠市| 民县| 资源县| 高碑店市| 乌鲁木齐市| 大城县| 芦溪县| 扎兰屯市| 天门市| 峨眉山市| 岫岩| 邛崃市| 临夏县| 贺州市| 墨脱县| 桃园县| 女性| 集贤县| 英德市|