首页 > 其他分享 >Scrapy 框架的 spider 参数

Scrapy 框架的 spider 参数

时间:2023-02-11 16:13:52浏览次数:37  
标签:框架 img url spider class Scrapy print div response

目录

Spider 的用法

变量

# 名字,要求全局唯一
name = 'douban'
# 运行爬取的网址
allowed_domains = ['movie.douban.com']
# 开始时爬取的 URL
start_urls = ['https://movie.douban.com/top250?start=0&filter=']
# 设置 settings 配置,会覆盖 settings.py 中配置的内容
custom_settings = {
    "LOG_LEVEL": "WARNING"
}

函数

# 爬取之前调用函数
def start_requests(self):
    url = 'https://movie.douban.com/top250?start=0&filter='
    yield scrapy.Request(
        # 爬之前把 URL 给改了
        url=url,
        # 然后调用爬取函数
        callback=self.parse,
    )
# 处理请求的函数
def parse(self, response):
    print(response)
	
# 请求处理结束之后调用的函数
def close(spider, reason):
    print("关闭时调用")

Spider 的常用解析函数

imgs = response.xpath('//ol[@class="grid_view"]/li')
for img in imgs:
    # get() 用于获取某一个 xpath 的值
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').get()
    print(img_url)
    # getall() 用于获取多个 xpath 的值
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').getall()
    print(img_url)
    # extract() 等价于 getall()
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').extract()
    print(img_url)
    # extract_first() 等价于 get()
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').extract_first()
    print(img_url)
    # re() 根据正则表达式获取数据
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').re('肖.*')
    print(img_url)
    # re_first() 根据正则表达式获取第一个数据
    img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').re_first('肖.*')
    print(img_url)

response 对象相关函数

# response.status 状态码
print(response.status)
# response.body 字节类型的请求内容
print(response.body)
# response.body.decode('utf-8') 转换成 utf-8 类型的请求内容
print(response.body.decode('utf-8'))
# response.url 请求的 URL
print(response.url)
# response.urljoin('abc') 拼接 URL
print(response.urljoin('abc'))
# response.encoding 当前页面中的 HTML 字符集编码
print(response.encoding)

标签:框架,img,url,spider,class,Scrapy,print,div,response
From: https://www.cnblogs.com/aduiduidui/p/17111852.html

相关文章

  • c++ 调用第三orm框架matador的方法通过vs2019
    1.安装matador编译好window版安装包,在安装目录下复制include和lib文件夹到自己的项目目录一下2.自己的mfc目录如图所示,粘贴制include和lib文件夹 3.用vs2019打开自己......
  • [Java] 多线程系列之Fork/Join框架[转载]
    1工作原理1.1核心思想Fork/Join框架是Java7提供的一个用于并行执行任务的框架,核心思想就是把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果,其实......
  • Android IO 框架 Okio 的实现原理,如何检测超时?
    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。前言大家好,我是小彭。在上一篇文章里,我们聊到了Square开源的I/O框架Okio的三个优势:......
  • java测试框架junit5
    1.常用注解执行顺序:BeforeAllBeforEach>测试用例>AfterEachBeforEach>测试用例>AfterEachBeAfterAll代码演示publicclassDemoTest{@BeforeAl......
  • Scrapy 框架的使用
    目录从0爬取豆瓣TOP250电影榜单大概的一个规划初始准备工作创建一个爬虫项目创建一个爬虫规则进入爬虫项目修改settings.py配置文件设置日志类型使得scrapy框架不遵守......
  • Android IO 框架 Okio 的实现原理,到底哪里 OK?
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。前言大家好,我是小彭。今天,我们来讨论一个Square开源的I/O框架Okio,我们最开始接触到Oki......
  • Qt 动画之一:动画框架
    一、Qt动画类介绍类名功能介绍QAbstractAnimation动画基类提供基本的动画属性和接口,它有两个子类QVariantAnimation和QAnimationGroup。QAbstractAnimati......
  • 创建一个Dapp 最好用什么脚手架和框架?
    最好使用webpack+react/vue1.兼容walletConnet时候如果不使用webpack当我我们引入第三方的链接钱包的时候内部会报错require,vite将开发环境下的模块文件作为浏览器的执......
  • 18个WebGL框架、Web3D图形库及编辑器
    WebGL是基于OpenGL的JavaScriptAPI库,允许Web浏览器在浏览器中渲染3D/2D图形,而无需安装额外的插件、桌面应用程序。WebGL允许通过浏览器使用机器GPU将3D图形渲染成HTML页......
  • Vue3 企业级优雅实战 - 组件库框架 - 11 组件库的打包构建和发布
    回顾第一篇文章中谈到的组件库的几个方面,只剩下最后的、也是最重要的组件库的打包构建、本地发布、远程发布了。1组件库构建组件库的入口是packages/yyg-demo-ui,构建组......