原文:https://www.cnblogs.com/zengsf/p/10039106.html
终端命令
- 创建一个项目: scrapy startproject name
- 利用蜘蛛名创建一个py文件: scrapy genspider name domain.name
- 在终端运行:scrapy shell url 得到response
- 利用蜘蛛名进行相对应的运行: scrapy crawl name
- 利用py文件进行运行: scrapy
- 将爬区下来的数据存储到csv文件: scrapy crawl name -o file.csv
- 将爬区下来的数据存储到JSON lines文件:scrapy crawl name -o file.jl
- 将爬区下来的数据存储到JSON文件:scrapy crawl name -o file.json
编写过程
- 先创建一个爬虫项目
- 将要爬去的目标在items.py文件中先定义好
- 然后在去spider中的py文件进行编写成程序
- 然后在去pipelines.py文件中进行数据的存储
- 要使用管道,那么就要开启管道,到settings.py文件中开始管道
- 在setting.py中设置为False就是不遵循robots.txt协议:ROBOTSTXT_OBEY = False
- 运行爬虫程序
提取数据
extract() : 获取选择器对象中的文本内容
- response.xpath('...') 得到选择器对象(节点所有内容) [<selector ...,data='<h1>...</h1>']
- response.xpath('.../text()') 得到选择器对象(节点文本) [<selector ...,data='文本内容'>]
- extract() : 把选择器对象中的文本取出来 ['文本内容']
如何将scrapy爬取到的数据存储到数据库
- mongo 启动mongoDB服务
- mongo 进入mongoDB shell
- 先到settings.py文件中的ITEM_PIPELINES下面设置MONGODB_HOST,MONGODB_PORT,
MONGODB_DBNAME, MONGODB_SHEETNAME.- 然后在传入一个USER_AGENT
scrapy爬取的数据快快速存储到本地
- scrapy crawl spider -o filename.json/csv 这样在终端里输入,定义你的文件格式与name
模拟登录
- headers 可以直接写在里面
- formdata 里面存放要登录的信息