我想扫描一个网站并下载其中的图像。 例如,对于像这样的网站URL:a.example.com/2vZBkE.jpg
,我需要一个机器人从a.example.com/aaaaaa.jpg
到a.example.com/AAAAAA.jpg
到a.example.com/999999.jpg
,如果有图像,请保存URL或下载图像。扫描图片的网址格式?
我尝试过使用Python和Scrapy,但我对它很陌生。 这是据我可以去:
import scrapy
from scrapy.contrib.spiders import Rule, CrawlSpider
from scrapy.contrib.linkextractors import LinkExtractor
from example.items import ExampleItem
class exampleSpider(CrawlSpider):
name = 'example'
allowed_domains = ['example.com']
start_urls = ['http://a.example.com/2vZBkE']
#rules = [Rule(LinkExtractor(allow=['/.*']),'parse_example')]
rules = (Rule(SgmlLinkExtractor(allow=('\/%s\/.*',)), callback='parse_example'),
)
def parse_example(self,response):
image = ExampleItem()
image['title']=response.xpath(\
"//h5[@id='image-title']/text()").extract()
rel = response.xpath("//img/@src").extract()
image ['image_urls'] = ['http:'+rel[0]]
return image
我想我需要改变这一行:
rules = (Rule(SgmlLinkExtractor(allow=('\/%s\/.*',)), callback='parse_example'),
)
以某种方式限制%s
6个字符,并Scrapy尝试可能的组合。有任何想法吗?
因此,您想以“a.example.com/ {id} .jpg”的形式下载所有图像吗? – Chaker
是的。我需要检查该ID是否有图像,然后下载它。 – Scraper