如何抓取网站上的每个链接并使用scrapy收集所有文本
我跟着林克如何抓取网站上的每个链接并使用scrapy收集所有文本,scrapy,scrapy-spider,Scrapy,Scrapy Spider,我跟着林克 https://stackoverflow.com/questions/19254630/how-to-use-scrapy-to-crawl-all-items-in-a-website 但事情不适合我 我正在努力学习通过网络抓取数据。我正在实现上给出的教程 并且能够爬过给定的链接 下面是示例代码快照 from scrapy.spiders import Spider from scrapy.selector import Selector from dirbot.items i
https://stackoverflow.com/questions/19254630/how-to-use-scrapy-to-crawl-all-items-in-a-website
但事情不适合我
我正在努力学习通过网络抓取数据。我正在实现上给出的教程
并且能够爬过给定的链接
下面是示例代码快照
from scrapy.spiders import Spider
from scrapy.selector import Selector
from dirbot.items import Website
class DmozSpider(Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/",
]
def parse(self, response):
"""
The lines below is a spider contract. For more info see:
http://doc.scrapy.org/en/latest/topics/contracts.html
@url http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/
@scrapes name
"""
sel = Selector(response)
sites = sel.xpath('//ul[@class="directory-url"]/li')
items = []
for site in sites:
item = Website()
item['name'] = site.xpath('a/text()').extract()
item['url'] = site.xpath('a/@href').extract()
item['description'] = site.xpath('text()').re('-\s[^\n]*\\r')
items.append(item)
return items
项目的代码捕捉为
from scrapy.item import Item, Field
class Website(Item):
name = Field()
description = Field()
url = Field()
我能够使用scrapy crawl dmoz运行爬虫程序
但不能做到以下几点
1. All given link on website
2. Didn't get all text from all possible link
3. Want to save them to a file
有人能指导我,我的代码需要做哪些更改才能实现我的目标吗
class=“directory url”
。
您可以使用sites=sel.xpath('//a/@href')
从网站获取所有给定的链接,而不是使用该链接。过滤所需的URL
或
如果可以从主域开始(http://www.dmoz.org/
),比如
doc=html.fromstring(response.body)
sites=doc.xpath('.//section[@id=“category section”]///aside')
对于站点中的站点:
item=StackDemoItem()
item['name']=site.xpath('.//div/h2/a/text())
item['url']=site.xpath('.//div/h2/a/@href')
你必须在域名后面加上项['url']
,才能获得正确的url。对url路径的其他页面也要这样做text=sel.xpath('//a/text()')
scrapy crawl\u crawler\u name-o out.csv保存内容,对此类文件使用json或txt而不是csv