Scrapy学习笔记

安装python环境

apt install -y python3-pip・

升级pip版本: pip install – upgrade pip

安装Scrapy

通过pip安装 Scrap框架 pip install Scrapy

报错

pyopenssl 20.0.1 has requirement cryptography>=3.2, but you'll have cryptogr

解决方法:重新安装OpenSSL sudo rm -rf /usr/local/lib/python3.5/dist-packages/OpenSSL/ sudo apt install –reinstall python-openssl

安装非 Python的依赖 apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

Scrapy中文网站 中文教程

Scrapy命令行翻译

命令 翻译
bench 运行快速基准测试
check 检查Scrapy内容
crawl 运行Scrapy
edit 编辑Scrapy
fetch 使用 Scrapy 下载器获取 URL
genspider 使用预定义模板生成新Scrapy
list 列出可用的Scrapy
parse 解析 URL(使用Scrapy)并打印结果
runspider 运行一个自包含的Scrapy(不创建项目)
settings 获取设置值
shell 交互式抓取控制台
startproject 创建新项目
version 打印 Scrapy 版本
view 在浏览器中打开 URL,如 Scrapy 所见

制作 Scrapy吧虫一共需要4步:

・新建项目( scrapy startproject xxx):新建一个新的爬虫项目 ・明确目标(编写items.py):明确你想要抓取的目标 ・制作爬虫( spiders/xxspiders. py):制作爬虫开始爬取网页 ・存储内容( pipelines. py):设计管道存储爬取内容

pip install scrapy

scrapy startproject myspider #创建爬虫项目 scrapy crawl myspider #执行爬虫

项目目录文件结构

scrapy.cfg:项目的配置文件
myspider:项目的 Python模块,将会从这里引用代码
myspider/items.py:项目的目标文件,用来保存爬取到的数据,有点像python的dict,但是提供一些额外的保护,减少错误
myspider/pipelines.py:项目的管道文件
myspiden/settings.py:项目的设置文件
myspider/spiders/:存储爬虫代码目录

item 示例.

import scrapy

class Itcastitem(scrap Item):
	name = scrapy.Field()
	level = scrapy.Field()
	info = scrapy.Field ()

Selectors 选择器

xpath():传入 xpath表达式,返回该表达式所对应的所有节京的 selector list列表 CSS():传入CSS表达式,返回该表达式所对应的所有节点的 selector list列表,语法同 BeautifulSoup4

extract():序列化该节点为 Unicode字符串并返回list

re():根据传入的正则表达式对数据进行提取,返回 Unicode字符List列表

Xpath表达式的例子及对应的含义:

/html/head/tit1e:选择HTML>文档中标签内的元素 /html/head/tit1e/text():选择上面提到的< title>元素的文字 //td:选择所有的元素 //div[class=“mine”]:选所有具有class=“mine"属性的div元素

path = [x [ "path" ] for ok, x in results if ok]

如果 返回true ,则读取返回迭代x中的path

返回一个列表

Import sys
reload(sys)
sys. setdefaultencoding (utf-8)
#这三行代码是 Python2.x里解决中文编码的万能钥匙,经过这么多年的吐槽后 Python3学乖了,默认编码是 Unicode了...
使用 Hugo 构建
主题 StackJimmy 设计