scrapy框架,scrapy genspider -1

创建爬虫项目文件命令行工具之scrapy genspider -l
跟着教程走:报错,狗血的原因是错把list的l看成了数字1
于是scrapy genspider -l就变成了scrapy genspider -1
看到有道才反应过来
感谢有道翻译,英语渣的痛苦啊。
了解到正确的打开方式后,enter一下,出现了模板列表
D:\test_.py\myweb\myfirstpjt>scrapy genspider -l
Available templates:
basic
crawl
csvfeed
xmlfeed
可以看见可创建爬虫的模板列表
选择其中一个
scrapy genspider -t basic weisuen1 iqiarnyue.com,创建一个basic类型名为weisuen1的爬虫文件
创建好的爬虫会保存在原来创建scrapy项目中,自带的 spider【蜘蛛】文件夹下。
sspider
还有其他容易犯迷糊的地方都会在后面继续记录。
蟹蟹各位看官的支持!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Scrapy框架爬取软科-高等教育评价领先品牌院校的前五页内容并按照校名、地区、管理部门、类别、双一流共计5个字段进行解析最后保存到csv文件的代码: 1. 创建Scrapy项目 在终端中输入以下命令创建Scrapy项目: ``` scrapy startproject university ``` 2. 创建Spider 在项目目录下创建Spider,用于爬取数据。在终端中输入以下命令: ``` scrapy genspider university_spider zuihaodaxue.com ``` 这里使用了软科榜单的网站zuihaodaxue.com作为爬取目标。 3. 编写Spider 打开university/spiders/university_spider.py文件,编写爬虫代码: ``` import scrapy from ..items import UniversityItem class UniversitySpider(scrapy.Spider): name = 'university_spider' allowed_domains = ['zuihaodaxue.com'] start_urls = ['http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'] def parse(self, response): table = response.xpath('//table[@class="tablelist"]')[0] keys = table.xpath('.//th/text()').extract() for tr in table.xpath('.//tr')[1:]: item = UniversityItem() tds = tr.xpath('.//td/text()').extract() item[keys[0]] = tds[0] item[keys[1]] = tds[1] item[keys[2]] = tds[2] item[keys[3]] = tds[3] item[keys[4]] = tds[4] yield item # 爬取前5页数据 for i in range(2, 6): url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019{}.html'.format(i) yield scrapy.Request(url, callback=self.parse) ``` 代码解析: 1. Scrapy中的Spider需要继承scrapy.Spider类,并重写name和start_urls属性以及parse()方法。 2. 在parse()方法中,我们使用XPath定位到表格,并获取表头信息和表格数据。 3. 我们使用一个自定义的Item类UniversityItem来保存数据,并将数据保存为字典类型。 4. 最后,我们使用yield关键字返回item,将数据交给Scrapy框架处理。 5. 在parse()方法中,我们使用for循环爬取前5页数据,每页的URL格式为http://www.zuihaodaxue.com/zuihaodaxuepaiming2019x.html,其中x为页数。 4. 编写Item 在university/items.py文件中,定义UniversityItem类: ``` import scrapy class UniversityItem(scrapy.Item): name = scrapy.Field() region = scrapy.Field() department = scrapy.Field() category = scrapy.Field() double_first_class = scrapy.Field() ``` 这里我们定义了5个属性,分别对应校名、地区、管理部门、类别、双一流。 5. 编写Pipeline 在university/pipelines.py文件中,编写数据处理Pipeline: ``` import csv class UniversityPipeline(object): def __init__(self): self.file = open('university.csv', 'w', encoding='utf-8', newline='') self.writer = None def process_item(self, item, spider): if self.writer is None: self.writer = csv.DictWriter(self.file, fieldnames=item.keys()) self.writer.writeheader() self.writer.writerow(item) return item def close_spider(self, spider): self.file.close() ``` 这里我们使用csv库将数据保存到csv文件中。 6. 配置Settings 在university/settings.py文件中,配置ITEM_PIPELINES和FEED_EXPORT_ENCODING: ``` ITEM_PIPELINES = { 'university.pipelines.UniversityPipeline': 300, } FEED_EXPORT_ENCODING = 'utf-8' ``` 7. 运行Spider 在终端中输入以下命令运行Spider: ``` scrapy crawl university_spider ``` 运行结束后,数据会保存在university.csv文件中。 注意事项: 1. 在XPath中,使用双斜杠//可以跨越多个层级查找节点,单斜杠/只查找子节点。 2. 在使用XPath定位节点时,需要注意节点的层级关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值