scrapy第三个项⽬爬取⽹站的所有源码
2爬取url下下载代码的url 涉及模块:import scrapy from scrapy.linkextractors import LinkExtractor
3下载所有代码ur 涉及知识:response下xpath、css的爬取
分类下的url:url1 = LinkExtractor(restrict_css='a.reference.internal::attr(href)')
url下的代码url:url2 = response.css('al::attr(href)').extract_first()
由于爬取到的是⽚段,还需要合成⽹址,所以第⼀个⽤links = le.extract_links(response)来合成,第⼆个⽤urljoin来合成
直接以两个函数来分开操作,def parse(self, response): 和 def parse_example(self,response): 分别对应url1和url2
def parse(self, response):
url1 = LinkExtractor(restrict_css='a.reference.internal')
links = le.extract_links(response)
yield scrapy.Request(link.url,callback=self.parse_example)
四句代码,就可以把分类中所有的链接弄到⼿
def parse_example(self,response):
url2 =response.css('al::attr(href)').extract_first()
links = response.urljoin(url2)
这样⼦就可以把代码下载链接拿到⼿了
接下来就是要下载代码链接中的东西了,⾸先要启⽤这⾥⾯的代码
然后在后⾯添加⼀句这样的代码,指定⽂件下载的⽬录
FILES_STORE = 'jike_src
最好别填错这⾥,不然就要像我⼀样检查半天才发现问题在于我没改后⾯那个,它的默认值是300,如果不改成1的话就没办法执⾏了之后定义在items定义⼀个字典,以便查看进度。
class JikeItem(scrapy.Item):
file_urls = scrapy.Field()
files = scrapy.Field()
回到yuanma.py中导⼊from ..items import JikeItem
最后只需要在
def parse_example(self,response):
url2 =response.css('al::attr(href)').extract_first()
links = response.urljoin(url2)
基础上加⼊免费源码下载网站有哪些
yuanma = JikeItem()
yuanma['file_urls'] = [url2]
return yuanma
就完成了。但是我不知道⽂件夹放在哪⾥。。。。。。。。。。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论