【发布时间】:2019-01-17 14:03:14
【问题描述】:
我得到的是空白 csv,尽管它没有在代码中显示任何错误。 无法爬取网页。
这是我写的参考 youtube 的代码:-
import scrapy
from Example.items import MovieItem
class ThirdSpider(scrapy.Spider):
name = "imdbtestspider"
allowed_domains = ["imdb.com"]
start_url = ('http://www.imdb.com/chart/top',)
def parse(self,response):
links = response.xpath('//tbody[@class="lister-list"]/tr/td[@class="titleColumn"]/a/@href').extract()
i = 1
for link in links:
abs_url = response.urljoin(link)
#
url_next = '//*[@id="main"]/div/span/div/div/div[2]/table/tbody/tr['+str(i)+']/td[3]/strong/text()'
rating = response.xpath(url_next).extact()
if (i <= len(link)):
i=i+1
yield scrapy.Request(abs_url, callback = self.parse_indetail, meta = {'rating': rating})
def parse_indetail(self,response):
item = MovieItem()
#
item['title'] = response.xpath('//div[@class="title_wrapper"])/h1/text()').extract[0][:-1]
item['directors'] = response.xpath('//div[@class="credit_summary_items"]/span[@itemprop="director"]/a/span/text()').extract()[0]
item['writers'] = response.xpath('//div[@class="credit_summary_items"]/span[@itemprop="creator"]/a/span/text()').extract()
item['stars'] = response.xpath('//div[@class="credit_summary_items"]/span[@itemprop="actors"]/a/span/text()').extract()
item['popularity'] = response.xpath('//div[@class="titleReviewBarSubItem"]/div/span/text()').extract()[2][21:-8]
return item
这是我在运行执行代码时得到的输出
scrapy crawl imdbtestspider -o example.csv -t csv
2019-01-17 18:44:34 [scrapy.core.engine] 信息:蜘蛛打开 2019-01-17 18:44:34 [scrapy.extensions.logstats] 信息:已爬取 0 页 (以 0 页/分钟),抓取 0 项(以 0 项/分钟)
【问题讨论】:
-
This question 有一个你正在做的工作代码。如果您需要更具体的帮助,请提供所有代码(相信
from Example.items是您的自定义代码?)。 -
另外,start_url 是一个列表,所以需要放在方括号中,即 start_url = [www.abc.com, ]
标签: python web-scraping scrapy export-to-csv