Python練習 scrapy 爬取汽車之家文章

2021-08-14 08:41:22 字數 1643 閱讀 7978

autohome.py  #spider檔案

# -*- coding: utf-8 -*-

import scrapy

from autohome.items import autohomeitem

class autohomespider(scrapy.spider):

name = 'autohome'

allowed_domains = ['']

start_urls = ['']

def parse(self, response):

#返回該表示式對應的所有selector list列表

for tit in tit_list:

item = autohomeitem()

#extract()序列化為unicode字串

title = tit.xpath("./h3").extract()

url = tit.xpath("./@href").extract()

jianjie = tit.xpath("./p").extract()

item['url'] = url[0]

item['jianjie'] = jianjie[0]

item['title'] = title[0]

#返回提取到的每個item資料,傳給管道處理,同時還會回來繼續處理下乙個資料

yield item

pipelines.py  管道檔案

import json

class autohomepipeline(object):

def __init__(self):

#建立檔案,以二進位制格式存入

self.f = open("autohomet.json","wb")

#獲取到每乙個item,

def process_item(self, item, spider):

#json.dumps無法直接轉item,所以需要把item強制轉換成dict,即可操作。

#ensure_ascii,json.jump預設為ascii碼,所以需要改為false來顯示中文

content = json.dumps(dict(item),ensure_ascii = false) + ",\n"

#把content以utf-8的形式寫入

self.f.write(content.encode("utf-8"))

#把item返回給引擎,告訴引擎可以處理下乙個item資料了。所有item資料處理完畢,

# 執行下面關閉方法

return item

def close_spider(self,spider):

self.f.close()

items.py 

import scrapy

class autohomeitem(scrapy.item):

# define the fields for your item here like:

# 標題

title = scrapy.field()

# **

url = scrapy.field()

# 簡介

jianjie = scrapy.field()

scrapy 爬取流程

什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程 關鍵是訪問之前要登入怎麼辦,資料還要注入呢 這是個列表,裡面就是爬取的鏈結了 我們前面爬取就只是寫了乙個,但是其實可以寫多個 鏈結又是怎麼訪問的呢 這東西你就可以手動提取鏈結返回了 這東西你就得好好注意了 從入...

scrapy 爬取小說

速度是相當的快的 爬取整站的 最後結果儲存至mongodb資料庫 pycharm開發還是很好用的 建立專案 scrapy startproject daomubiji 執行專案 scrapy crawl daomubi settings default request headers items t...

scrapy爬取噹噹

import scrapy from items import dangdangitem class ddspider scrapy.spider name dd allowed domains dangdang.com start urls def parse self,response 使用xp...