这是我目前为止的代码。我想循环通过这个网站上所有剩余的页面,并刮每一个,然后把所有的输出到一个。csv文件。
import scrapy
# No unneeded imports
class BillingsorgSpider(scrapy.Spider):
name = "billingsorg"
allowed_domains = ["billings.org"]
start_urls = ['https://www.billings.org/agents/']
def parse(self, response):
# iterate through each of the realtors
for staff in response.css('div.staff-capsule'):
# gather contact information for each realtor
item = {
'name': staff.xpath('.//h3//text()').get().strip(),
'phone': ''.join(staff.xpath('.//div[@class="staff-phone"]//text()').getall()).strip(),
'email': staff.xpath('.//div[@class="staff-email"]//a/@href').get(),
'company': ''.join(staff.xpath('.//div[@class="staff-company"]//text()').getall()).strip()
}
print(item) # print the item here in the scope of the method
yield item # yield to output processor
1条答案
按热度按时间hec6srdp1#
分页的方法是使用
a[@class="btn btn-info"]
的xpath获取当前页面元素,然后使用当前页面链接的相对xpath获取下一页的兄弟元素,然后比较这两个链接以了解何时到达最后一页,然后将链接放入一个新的scrapy请求并将其返回给调度程序。例如:
输出
这只是部分结果,但您可以在第7 - 11页的url中看到它解析的结果