import scrapy from ychouse.items import YchouseItem # 导入item class EsfSpider(scrapy.Spider): name = "esf" allowed_domains = ["allowdomians"] start_urls = ["https://fc.cqyc.net/resoldhome/esf/list"] def parse(self, response): lilist = response.xpath('/html/body/div[6]/div[3]/ul/li') # print(lilist) for li in lilist: item = YchouseItem() #实例化item item["title"] = li.xpath('./div[2]/p[1]/a/text()').extract_first() item['href'] ='https://fc.cqyc.net' + li.xpath('./div[2]/p[1]/a/@href').extract_first() item['housetype'] = li.xpath('./div[2]/p[2]/span[1]/text()').extract_first() item['floor'] = li.xpath('./div[2]/p[2]/span[2]/text()').extract_first() # print(item) yield scrapy.Request(item['href'],callback=self.parseinfo,meta={'item':item}) #翻页 # next_url = 'https://fc.cqyc.net' + response.xpath('//span[@class="next-page"]/../@href').extract_first() # if next_url != response.url: # yield scrapy.Request(url=next_url,callback=self.parse) pass def parseinfo(self,response): item = response.meta['item'] item['houseimg']= response.xpath('/html/body/div[4]/div/div[3]/div[2]/ul/li[1]/img/@src').extract_first() print(item)
时间: 2024-04-02 21:36:22 浏览: 91
这段代码是使用Scrapy框架爬取重庆房产网的二手房列表信息,并且获取每个房源的详情页链接,然后进入详情页爬取更详细的房源信息。其中,使用了XPath语法来解析HTML页面,将解析得到的信息存储到自定义的Item对象中,最后使用yield返回给Scrapy框架。同时,在进入详情页时,使用了Scrapy的meta参数将Item对象传递给了回调函数parseinfo,以便在该函数中继续对Item对象添加信息。
相关问题
解释一下……import scrapy from myspider.items import MyspiderItem import json class MovieSpider(scrapy.Spider): name = 'movie' allowed_domains = ['ssr1.scrape.center'] start_urls = ['http://ssr1.scrape.center/'] def parse(self, response): result = response.xpath('//div[@class="el-card item m-t is-hover-shadow"]')
这是一个使用Scrapy框架编写爬虫的Python代码。具体解释如下:
1. `import scrapy`: 导入Scrapy框架,用于编写爬虫。
2. `from myspider.items import MyspiderItem`: 导入自定义的item,用于存储爬取到的数据。
3. `import json`: 导入JSON模块,用于将爬取到的数据转换成JSON格式。
4. `class MovieSpider(scrapy.Spider):`: 定义一个名为MovieSpider的爬虫类,继承自Scrapy中的Spider类。
5. `name = 'movie'`: 定义爬虫的名称为'movie'。
6. `allowed_domains = ['ssr1.scrape.center']`: 定义允许爬取的域名为'ssr1.scrape.center'。
7. `start_urls = ['http://ssr1.scrape.center/']`: 定义爬虫的起始URL为'http://ssr1.scrape.center/'。
8. `def parse(self, response):`: 定义一个名为parse的方法,用于解析爬取到的响应。
9. `result = response.xpath('//div[@class="el-card item m-t is-hover-shadow"]')`: 使用XPath表达式在响应中解析出所有class属性为'el-card item m-t is-hover-shadow'的div元素,将结果保存在result变量中。
该代码片段中只是爬虫的一部分,具体的爬取过程和数据处理过程需要根据网站的具体情况进行编写。
阅读全文