今天花了一点时间,写了一个FitGirl Repacks游戏网站的自动爬虫脚本

用的是scrapy的爬虫框架

items.py 作用:确定需要爬取的内容

import scrapy

class Fg1Item(scrapy.Item):
	# define the fields for your item here like:
	# name = scrapy.Field()
	tle = scrapy.Field()
	info = scrapy.Field()
	pass

在这里,我选择爬取两样信息:title 和 info ,分别对应各个游戏的标题名称 和 下载地址


FG.py 作用:爬虫的逻辑结构

import scrapy
from FG1.items import Fg1Item

class FgSpider(scrapy.Spider):
	name = "FG"
	allowed_domains = ["fitgirl-repacks.site"]
	start_urls = ["http://fitgirl-repacks.site/"]

	def parse(self, response):
    	for i in range(1,350):
       		yield scrapy.Request("https://fitgirl-repacks.site/page/"+str(i)+'/',callback=self.parse_page)
    	pass
	def parse_page(self, response):
    	for each in response.xpath("//article"):
        	item=Fg1Item()
        	item['tle']=each.xpath("header/h1/a/text()").extract()
        	item['info']=each.xpath("div/ul[1]").extract()
        	yield item

逻辑结构分为两层:

  1. 先获取索引界面,请求各个目录界面( parse 函数)
  2. 再用XPath解析 获取各个界面的title和info

运行 scrapy crawl FG -o out.csv

最后可以看到爬取了全部3千多条信息