import scrapy
from scrapy import Selector
from xutianqi34.items import HouseItem
class XspiderSpider(scrapy.Spider):
name = "xspider"
allowed_domains = ["www.tzfdc.com.cn/home"]
start_urls = ["http://www.tzfdc.com.cn/home/newhouse/index"]
def parse(self, response):
sel = Selector(response)
list_items = sel.css('body > div.h_main > div.h_main_left > div.h_list > ul > li')
for list_item in list_items:
house_item = HouseItem()
house_item['name'] = list_item.css('div.h_1::text').extract_first()
house_item['area'] = list_item.css('div.h_2::text').extract_first()
house_item['ad'] = list_item.css('div.h_3::text').extract_first()
house_item['ht'] = list_item.css('div.h_4::text').extract_first()
yield house_item
# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html
import scrapy
class HouseItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
name = scrapy.Field()
area = scrapy.Field()
ad = scrapy.Field()
ht = scrapy.Field()
运行 scrapy crawl xspider -o fdc.csv
后csv文件为空白的
需要其他信息求留言
我运行了你的代码,没有问题啊。可以将数据保存到csv中:
代码我看了没问题,如果网站的代码或页面结构没有有改动的话,你的问题可能出在 CSV 文件的生成上。如果 CSV 文件中没有数据,很可能是因为在保存数据时文件没有被正确地打开或关闭。确保在代码中正确地配置了输出文件路径,并且在最后关闭了文件才能正常输出。
解决scrapy 生成csv文件空行问题
可以借鉴下
https://blog.csdn.net/weixin_38336920/article/details/83062448
名称 | 作用 |
---|---|
scrapy.cfg | 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中) |
items.py | 设置数据存储模板,用于结构化数据,如:Django的Model |
pipelines | 数据处理行为,如:一般结构化的数据持久化 |
settings.py | 配置文件,如:递归的层数、并发数,延迟下载等 |
spiders | 爬虫目录,如:创建文件,编写爬虫规则 |
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
问题可能出现在allowed_domains中,应该填写的是网站的域名,而不是具体的页面URL。尝试将allowed_domains修改为["http://www.tzfdc.com/
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,检查一下setting.py中是否启用了FEED_FORMAT和FEED_URI,这两个参数设置了csv文件的格式和保存路径,例如:
FEED_FORMAT = "csv"
FEED_URI = "data/fdc.csv"
其次,建议使用绝对路径,这样可以避免保存路径不对的问题。
最后,如果以上两个解决方法都不起作用,请检查一下你的xpath选择器是否正确,可以在shell中运行response并调试xpath选择器,确保提取到正确的数据。下面是调试xpath选择器的代码:
>>> from scrapy import Selector
>>> body = '<body><div class="h_main"> ... </div></body>'
>>> sel = Selector(text=body)
>>> sel.css('div.h_1::text').extract()
如果以上方法还是不能解决问题,请贴出详细的代码和运行日志,方便进一步排查问题。
如果我的回答解决了您的问题,请采纳!
以下答案由GPT-4.5Plus大模型(语音)与博主A努力中.......共同编写:
很可能您的Scrapy爬虫生成的CSV文件为空白有以下几个原因:
python
import csv
class YourExporter(CsvItemExporter):
...
exporter = YourExporter(somefile.csv, include_headers_line=True)
总之,出现CSV文件为空白,很有可能是爬虫本身的问题,解决方法是: