本文目录一览:
- scrapy-redis到底需要怎样部署啊?分别应该安装什么软件?
- python爬虫需要什么基础
- python爬虫需要安装哪些库
- 从python基础到爬虫的书有什么值得推荐
- python爬虫爬下来的数据怎么导入到MySQL
scrapy-redis到底需要怎样部署啊?分别应该安装什么软件?
酷辣虫 CoLaBug
综合技术
Scrapy-redis分布式爬虫+Docker快速部署
简书 简书 2018-07-28 本文共6495个字,预计阅读需要17分钟。
生成海报
微信扫一扫,分享到朋友圈
Scrapy-redis分布式爬虫+Docker快速部署
0 0
Scrapy-redis分布式爬虫+Docker快速部署
打算爬一个网站的数据,量比较大,url链接从0开始达到2亿,刚开始用request递归写了个爬虫,发现速度低的可怜,不算任何的错误,也只能达到0.5秒一个请求,这速度实在不能忍,所以想着用分布式爬虫,所以才有了这篇文章
开发环境+框架、库
开发环境:
- macOS High Sierra 10.13
- Python3.5
开发工具: - PyCharm
Python库: - pymysql
- scrapy
- scrapy-redis
- requests
- BeautifulSoup4
- redis-py
运行环境: - Centos7.4
- Centos6.9
- Docker
开始搭建环境
安装 Python3
- Windows请自行查找教程安装
- Mac用户系统自带了 Py2.6,建议升级到 Python3,用 HomeBrew 安装即可
Homebrew安装命令:
/usr/bin/ruby -e "$(curl -fsSL )"
然后使用:
brew install python
安装成功后再终端输入 python3
查看是否安装成功,如果输入 python
默认使用本机的 py2,当然也可以去配置文件设置一个 alias 将 python
设置成启动 py3
如图安装成功
然后用
easy_install pip
安装 Python 的包管理工具 pip
注意:有的人用的是 Anaconda 作为 py 环境,我刚开始也是用的 Anaconda,但是在 install scrapy-redis 的时候发现无法导入,默认源都没有这个库
python爬虫需要什么基础
网页知识
- HTML、JS、CSS、XPath这些知识,虽然简单,但一定需要了解。你得知道这些网页是如何构成的,然后才能去分解他们。
HTTP知识
- 一般爬虫你需要模拟浏览器的操作,才能去获取网页的信息
- 如果有些网站需要登录,才能获取更多的资料,你得去登录,你得把登录的账号密码进行提交
- 有些网站登录后需要保存cookie信息才能继续获取更多资料
正则表达式
- 有了正则表达式才能更好的分割网页信息,获取我们想要的数据,所以正则表达式也是需要了解的。
一些重要的爬虫库
- url, url2
- BeautifulSoup
数据库
- 爬取到的数据我们得有个地方来保存,可以使用文件,也可以使用数据库,这里我会使用 MySQL,还有更适合爬虫的 MongoDB 数据库,以及分布式要用到的 Redis 数据库
爬虫框架
- PySpider 和 Scrapy 这两个爬虫框架是非常NB的。简单的爬虫可以使用 urllib 与 urllib2 以及正则表达式就能完成,但高级的爬虫还得用这两个框架。这两个框架需要另行安装。后面一起学习。
反爬虫
- 有时候你的网站数据想禁止别人爬取,可以做一些反爬虫处理操作。打比方百度上就无法去查找淘宝上的数据,这样就避开了搜索引擎的竞争,淘宝就可以搞自己的一套竞价排名。
分布式爬虫
- 使用多个 Redis 实例来缓存各台主机上爬取的数据。 爬虫要学的东西还是挺多的,想把爬虫玩得666,基本就是这些知识点吧!
python爬虫需要安装哪些库
一、请求库
- requests
requests 类库是第三方库,比 Python 自带的 urllib 类库使用方便。 - selenium
利用它执行浏览器动作,模拟操作。 - chromedriver
安装 chromedriver 来驱动 Chrome。 - aiohttp
aiohttp 是异步请求库,抓取数据时可以提升效率。
二、解析库
- lxml
lxml 是 Python 的一个解析库,支持解析 HTML 和 XML,支持 XPath 的解析方式,而且解析效率非常高。 - beautifulsoup4
Beautiful Soup 可以使用它更方便的从 HTML 文档中提取数据。 - pyquery
pyquery 是一个网页解析库,采用类似 jQuery 的语法来解析 HTML 文档。
三、存储库
- MySQL
- MongoDB
- Redis
四、爬虫框架:Scrapy
Scrapy 是一套异步处理框架,纯 Python 实现的爬虫框架,用来抓取网页内容以及各种图片。 需要先安装 Scrapy 基本依赖库,比如:
- lxml
- pyOpenSSL
- Twisted
从python基础到爬虫的书有什么值得推荐
《Python3爬虫入门到精通课程视频【附软件与资料】【34课时】--崔庆才》百度网盘资源免费下载
链接:
?pwd=zxcv 提取码: zxcv
目录结构:
- 章节5:分布式篇
- 章节4:框架篇
- 章节3:实战篇
- 章节2:基础篇
- 章节1:环境配置
- Python3爬虫课程资料代码.zip
- 2018-Python3网络爬虫开发实战-崔庆才.pdf
- 课时06:Python爬虫常用库的安装.zip
- 课时05:Python多版本共存配置.zip
- 课时04:MySQL的安装.zip
- 课时03:Redis环境配置.zip
- 课时02:MongoDB环境配置.zip
- 课时01:Python3+Pip环境配置.zip
- 课时13:Selenium详解.zip
python爬虫爬下来的数据怎么导入到MySQL
下载 mysql.connector
库,然后把爬虫爬到的数据通过 MySQL 的 INSERT
语句插入到数据库中。当然也可以建表,一般我没用 Python 建表,是先建好再写数据的。
示例代码如下:
import mysql.connector
conn = mysql.connector.connect(
user='root',
password='root',
host='127.0.0.1',
port='3306',
database='test_demo'
)
cursor = conn.cursor()
cursor.execute("INSERT INTO test_user(`uuid`,`user_name`,`user_level`) VALUES (%s,%s,%s)", [id, user_name, user_level])
cursor.execute("INSERT INTO tieba_user_detail(`user_name`,`user_exp`,`user_sex`,`tieba_age`,`tieba_note`,`user_favorites`,`user_fans`) VALUES (%s,%s,%s,%s,%s,%s,%s)", [user_name, user_exp, user_sex, tieba_age, tieba_note, user_favorites, user_fans])
print('************** %s %s 数据保存成功 **************' % (user_rank, user_name))
conn.commit()
cursor.close()
插入数据就是这样的。