首先,如果我首先使用extract\u,scrapy会给我每个页面的第一个元素,如果我这样运行它,它会返回所有我想要的内容,但只返回一行。你知道吗
第二,我不能让scrapy去我刚刚刮到的链接,从这些链接中获取信息,返回一个空的csv文件。你知道吗
from scrapy import Spider
from companies.items import CompaniesItem
import re
class companiesSpider(Spider):
name = "companies"
allowed_domains = ['http://startup.miami',]
# Defining the list of pages to scrape
start_urls = ["http://startup.miami/category/startups/page/" + str(1*i) + "/" for i in range(0, 10)]
def parse(self, response):
rows = response.xpath('//*[@id="datafetch"]')
for row in rows:
link = row.xpath('.//h2/a/@href').extract()
name = row.xpath('.//header/h2/a/text()').extract()
item = CompaniesItem()
item['link'] = link
item['name'] = name
yield item
您的解析方法未生成任何请求或项。在下面的部分中,我们将浏览这些页面并获取URL和名称。在parse\u detail中,可以向项添加其他数据。 我们没有硬编码到10页,而是检查是否有下一页,如果是这样的话,再进行一次解析。你知道吗
要将结果放入csv文件中,可以像这样启动scraper:
scrapy crawl companies -o test_companies.csv
相关问题 更多 >
编程相关推荐