python之scrapy框架基礎搭建

1、建立工程python

#在命令行輸入
scrapy startproject xxx  #建立項目

2、寫item文件json

#寫須要爬取的字段名稱
name = scrapy.Field()  #例

3、進入spiders寫爬蟲文件dom

①直接寫爬蟲文件本身手動命名
        新建一個.py文件便可
②經過命令方式建立爬蟲文件 scrapy gensipder yyy
"xxx.com" 命名不能於工程名相同,爬取的域名區域

4、寫爬蟲文件scrapy

start_urls    #爬蟲第一次執行時爬取的網址域
初始換模型對象
iteam
= TencentItem() #將iteam文件引入 iteam['xxx']= each.xpath("./td[1]/a/text()").extract()[0]
#xpath返回選擇性的列表,extract將其轉換成字符串,再取出列表中的第一個字符。
yield iteam #放到管道文件 #因爲爬取的頁面不止一頁,因此須要調用請求回調函數。 #將請求從新發送給調度器入隊列,出隊列,交給下載器下載 #每次處理完一頁的頁面請求後,發送下一頁的頁面請求 yield scrapy.Request(url, callback = self.parse)
#函數名parse,有請求才會觸發回調函數,yield發送到調度器
//寫在每次循環執行完的外面。

5、寫管道文件ide

首先定義初始化方法
        def __init__(self):
            self.filename=open("xxx", "w")
    def process_item(self, iteam, spider):
        dict(iteam)    #字典轉換成python的格式
        json.dumps(dict(iteam), ensure_ascii = False) + "\n"    #轉換成json格式
        self.filename.write(text.encode("utf-8"))    #若是出現沒法寫入問題,要加上.encode("utf-8")
        return iteam
    關閉文件
        def close_spider(self, spider):
            self.filename.close()

6、配置settings文件
    找到ITEM_PIPELINES配置項,配置到管道文件函數

7、設置請求報頭
    在settings文件中找到DEFAULT_REQUEST_HEADERS配置url

8、運行程序spa

scrapy crawl 文件名

crawlspider建立應用改寫命令行

1、建立工程code

scrapy gensipder -t crawl tencent tencent.com
    #導入crawlspider類和rule規則
    #from scrapy.spider import CrawlSpider, Rule
    #導入連接規則匹配類,用來提取符合規則的連接
    #from scrapy.linkextractors import LinkExtractor
    #from TencentSpider.items import TencentItem
    class TencentSpider(CrawlSpider):    #繼承CrawlSpider類
        name = "xxx"    #爬蟲名
        allow_domains = []    #控制爬蟲的爬取域
        start_urls = []
        #正則匹配規則,Response裏頁面信息中符合規則的數據
        pagelink = LinkExtractor(allow=("start=\d+"))
        #批量調用請求方法
        rules = [
            #pagelink=url, 跟進連接調用方法,是否跟進連接True
            Rule(pagelink, callback = "parseTencent", follow = True)
        ]
    
鬥魚
    將json格式轉換成python格式,data段是列表
    data = json.loads(response.text['data']
    
相關文章
相關標籤/搜索