手把手带你入门Python爬虫Scrapy
大数据DT
共 3439字,需浏览 7分钟
· 2020-09-10
导读:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
调度器(Scheduler) 下载器(Downloader) 爬虫(Spider) 中间件(Middleware) 实体管道(Item Pipeline) Scrapy引擎(Scrapy Engine)
def parse(self, response):
pass
python3 -m pip install scrapy #这个可能需要花掉一段时间,如果你的网络快可能就比较快,如果你出现超时导致没有安装成功可以继续执行这个命令
scrapy startproject lab #创建新的Scrapy项目,注意一下,如果此命令没有你就需要配置一下Scrapy 的环境变量
cd lab #进入创建的项目目录
scrapy genspider labs http://lab.scrapyd.cn/page/1/ # 生成spider 代码
class LabItem(scrapy.Item):
title = scrapy.Field()
author = scrapy.Field()
def parse(self, response):
items=LabItem() #实例化一个数据对象,用于返回
for sel in response.xpath('//div[@class="col-mb-12 col-8"]'):
print(sel)
for i in range(len(sel.xpath('//div[@class="quote post"]//span[@class="text"]/text()'))):
title = sel.xpath('//div[@class="quote post"]//span[@class="text"]/text()')[i].get()
author = sel.xpath('//div[@class="quote post"]//small[@class="author"]/text()')[i].get()
items["title"]=title
items["author"] = author
yield items #返回提出来的每一个数据对象
from itemadapter import ItemAdapter
import json
class FilePipeline(object):
def open_spider(self, spider):
print("当爬虫执行开始的时候回调:open_spider")
def __init__(self):
print("创建爬虫数据存储文件")
self.file = open('test.json',"w", encoding="utf-8")
def process_item(self, item, spider):
print("开始处理每一条提取出来的数据")
content = json.dumps(dict(item),ensure_ascii=False)+"\n"
self.file.write(content)
return item
def close_spider(self, spider):
print("当爬虫执行结束的时候回调:close_spider")
self.file.close()
这里是自定义的一个pipeline,所以还需要在setting.py 文件里面把它配置上,如下:
ITEM_PIPELINES = {
'lab.pipelines.FilePipeline': 300,
}
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0
为什么我们公司还在用 Python 开发项目?
作者:哇哒嘻哇https://www.zhihu.com/question/278798145/answer/3416549119最近几年里,经常看到某些曾重度使用 Python 的大公司迁移成其它语言技术栈,但是,那些小公司/小团队的情况如何呢?一直很想了解那些仍在坚持使用 Python,且支撑业
机器学习算法与Python实战
0
如此“爬虫”?代码全省了
大家好,我是章北海Jina AI 开源了 RAG 数据处理中的关键组件:“网页数据爬取” ——Reader,目前 3300+ Star⭐️项目地址:https://github.com/jina-ai/readerJina AI Reader 特征:免费使用开源延迟大概 2S 内,复杂的内容可能需要
机器学习算法与Python实战
0