我是新手在python和我正在一個項目,其中給了一個輸入類別頁面例如https://en.wikipedia.org/wiki/Category:Sorting_algorithms蟒蛇刮
刮掉A-Z下的所有內容(而不是子類別,但實際的維基頁面)。所以,基本上,進入Adative堆排序並將內容保存在磁盤上。 我期待到scrapy http://scrapy.org/ 但還沒有能找出我需要把模板
我是新手在python和我正在一個項目,其中給了一個輸入類別頁面例如https://en.wikipedia.org/wiki/Category:Sorting_algorithms蟒蛇刮
刮掉A-Z下的所有內容(而不是子類別,但實際的維基頁面)。所以,基本上,進入Adative堆排序並將內容保存在磁盤上。 我期待到scrapy http://scrapy.org/ 但還沒有能找出我需要把模板
我會推薦閱讀Scrapy文檔這裏:根據你的使用情況http://doc.scrapy.org/en/latest/
,我也會推薦你閱讀大約Spider論據 here:http://doc.scrapy.org/en/latest/topics/spiders.html#spider-arguments。
一旦這樣做,請按照你的shell下列步驟操作:
創建Scrapy項目
scrapy startproject命令維基
CD維基
創建第一個蜘蛛
個scrapy genspider類別wikipedia.org來
創建您的第一項(WikipediaItem)。編輯維基百科/items.py,刪除一切,並添加以下代碼:
#coding:utf-8
import scrapy
class WikipediaItem(scrapy.Item):
category_name = scrapy.Field()
category_url = scrapy.Field()
letter_name = scrapy.Field()
編輯類別蜘蛛,它位於維基/蜘蛛/ categories.py,刪除一切,並添加以下代碼:
#coding:utf-8
import scrapy
from wikipedia.items import WikipediaItem
class CategoriesSpider(scrapy.Spider):
name = "categories"
allowed_domains = ["wikipedia.org"]
def __init__(self, category=None, *args, **kwargs):
super(CategoriesSpider, self).__init__(*args, **kwargs)
if category is not None:
self.start_urls = ['https://en.wikipedia.org/wiki/Category:%s' % category]
def parse(self, response):
sel = response.xpath
item = WikipediaItem()
categories_letters = sel('//div[@id="mw-pages"]/div/div/div[@class="mw-category-group"]')
for letter in categories_letters:
letter_name = ''.join(letter.xpath('.//h3/text()').extract()).replace(u'\xa0', u'')
for category in letter.xpath('.//ul/li/a'):
category_name = ''.join(category.xpath('.//@title').extract())
category_url = ''.join(category.xpath('.//@href').extract())
item['category_name'] = category_name
item['category_url'] = category_url
item['letter_name'] = letter_name
yield item
最後,使用您選擇的類別安排爬網。在這種情況下,我用Sorting_algorithms類別:
scrapy爬行類-a類= Sorting_algorithms -o results.json -t JSON
我會讓你的shell顯示你的結果。這只是您想要實現的一部分,您可以繼續閱讀文檔,並詢問您是否有任何疑問。希望這可以幫助。