【发布时间】:2021-07-19 20:10:43
【问题描述】:
所以我目前正在为这个网站制作一个爬虫项目:https://www.datacenters.com/locations?page=1&per_page=40&query=&withProducts=false&showHidden=false&nearby=false&radius=0&bounds=&circleBounds=&polygonPath=。它遍历所有不同的数据中心位置并打印出 csv(通过 vs 代码完成并使用终端命令 scrapy crawl datacenters -o datacenters.csv 运行)。也许我应该改用 JSON 文件?也在考虑使用熊猫。出于某种原因,无论我改变什么,我的代码都不能超过第一页。我将不胜感激任何帮助,谢谢。我只需要知道要编辑/添加的其他内容,以便我可以抓取大部分(如果不是全部)页面,可能会创建一个循环?
import scrapy
import pandas as pd
class DatacentersSpider(scrapy.Spider):
name = 'datacenters'
allowed_domains = ['datacenters.com']
start_urls = ['http://datacenters.com/locations']
def parse(self, response):
for link in response.css('div.LocationsSearch__location__J7LUu a::attr(href)'):
yield response.follow('https://www.datacenters.com'+link.get(), callback = self.get_info)
def get_info(self, response):
yield {'Full Name': response.css('h1.LocationProviderDetail__locationNameXs__2UKtL::text').get(),
'Number': response.xpath('//div[@class="LocationProviderDetail__phoneItemWrapper__3-SfO"]/div/span/text()').extract_first(),
'SQFT': response.xpath('//div[@class="LocationProviderDetail__facilityDetails__M1ErX"]/div/span/text()').extract_first()
}
【问题讨论】:
标签: python pandas web-scraping scrapy web-crawler