爬虫基本命令
新建项目
在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,在终端下运行下列命令:
scrapy startproject mySpider
生成爬虫文件
生成爬虫名是itcast, 爬虫允许的域名是 itcast.cn
这里爬虫允许爬取的域名范围
如果后面修改代码时增加了其他域名,需要在这里进行修改
scrapy genspider itcast "itcast.cn"
>> 代码变化示例如下:
name = "itcast"
allow_domains = ['itcast.cn']
启动爬虫文件
- 在终端使用命令行:
Scrapy crawl itcast
- 制作爬虫启动文件:
from scrapy import cmdline
# 爬虫启动文件
cmdline.execute("scrapy crawl baidu_news".split())
scrapy常用参数:
encoding: 使用默认的 ‘utf-8’ 就行。
dont_filter: 表明该请求不由调度器过滤。这是当你想使用多次执行相同的请求,忽略重复的过滤器。默认为False。
errback: 指定错误处理函数
method:请求一般不需要指定,默认GET方法,可设置为"GET", “POST”, "PUT"等,且保证字符串大写
xpath基本语法:
| 表达式 | 结果内容 |
|---|---|
| /bookstore/book[price>35.00] | 选取bookstore下book元素price 元素的值须大于 35.00。 |
| //title[@la=‘eng’] | 选取所有title元素,且这些元素拥有值为 eng 的 la 属性。 |
| /bookstore/book[1] | 选取属于 bookstore 的第一个 book 元素。 |
| //a/text() | 选取a标签下的内容 |
| //a/@href | 选取 a 标签下的href属性的值 |
模块编写
middleware.py
在middleware.py下编写随机user-agent库,请求随机提取一个user-agent
需要在setting.py打开DOWNLOADER_MIDDLEWARES,并且更改内容
import random
#每次请求设置随机user-agent
class BaiduDownloaderMiddleware(object):
user_agents = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60",
"Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Fi

本文详细介绍了如何使用Scrapy框架搭建和配置爬虫项目,包括创建项目、生成爬虫文件、启动爬虫,以及设置常用参数。重点讲解了Scrapy的XPath语法和中间件的编写,如随机User-Agent、保存数据到不同格式(JSON、TXT、CSV、MySQL)的管道实现。此外,还提到了带Cookie爬取、URL拼接、参数传递、正则非贪婪模式和JS执行等高级技巧。
最低0.47元/天 解锁文章
1786

被折叠的 条评论
为什么被折叠?



