scrapy的极快上手使用
参考资料
创建scrapy项目
scrapy startproject myproject [project_dir]
myproject:项目名
project_dir:项目存储的位置 可以不填 不填的时候就是在当前目录创建myproject文件夹作为项目的目录
创建爬虫
在创建完目录之后需要先进入到项目目录
cd project_dir
scrapy genspider mydomain mydomain.com
mydomain:就是爬虫名
mydomain.com: 就是爬虫可以爬取的目录名 他会在新生成的文件里面的参数里面体现
编写爬虫程序
预先准备
代码结构
爬虫里面是得到请求的链接 和 从对应的链接中抽取数据项和得到新的请求链接 给pipelines存储数据
items是抽取出来的数据项的定义 它定义一些确定的字段 如果使用了确定的字段之外的字段会报错的 其实也可以直接使用字典类型
爬虫文件
默认内容:
import scrapy
class BaiduSpider(scrapy.Spider):
name = '百度'
allowed_domains = ['百度.com']
start_urls = ['http://百度.com/']
def parse(self, response):
pass
name:爬虫名
allowed_domains:爬虫被运行访问的地址(避免爬取到其他页面的数据,也可以不填写该项)
start_urls:表示初始是需要被爬取的链接的列表
def parse(self, response):对于url获取的响应的处理,比如从页面中获取到数据封装到item
例子
以爬取百度新闻为例 http://news.百度.com/
假设要获取热点新闻
修改文件内容
import scrapy
class BaiduSpider(scrapy.Spider):
name = '百度'
allowed_domains = ['百度.com']
start_urls = ['http://news.百度.com/']
def parse(self, response):
links = response.xpath(r'//*[@id="left-col-wrapper"]/div[3]//a')
item ={}
for i in links:
item['title'] = i.xpath(".//text()").get()
item['link'] = i.xpath(".//@href").get()
print(item)
更改一下setting.py
添加下面的代码
ROBOTSTXT_OBEY = False # 不遵守robot.txt
LOG_LEVEL = 'WARNING'#日志的等级
然后在命令行输入scrapy crawl 百度
百度就是之前那个爬虫名字
结果
pipelines文件
修改setting.py配置一下pipeline文件
ITEM_PIPELINES = {
'tutorial.pipelines.TutorialPipeline': 300,
}
pipelines文件就是用于对item进行处理的
修改piplines文件
from itemadapter import ItemAdapter
class TutorialPipeline:
def process_item(self, item, spider):
# 这里可以设置成存储为文件或者存到数据库 我这里只是简单的输出一下
print(item)
return item
修改 爬虫文件
class BaiduSpider(scrapy.Spider):
name = '百度'
allowed_domains = ['百度.com']
start_urls = ['http://news.百度.com/']
def parse(self, response):
links = response.xpath(r'//*[@id="left-col-wrapper"]/div[3]//a')
item ={}
for i in links:
item['title'] = i.xpath(".//text()").get()
item['link'] = i.xpath(".//@href").get()
yield item
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfigbei
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01