长袖格子衫
码龄7年
关注
提问 私信
  • 博客:23,742
    社区:32
    视频:3
    23,777
    总访问量
  • 73
    原创
  • 48,610
    排名
  • 214
    粉丝
  • 3
    铁粉
  • 学习成就

个人简介:互相关注,共同进步,关注我,带你领略更多代码时光

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江西省
  • 加入CSDN时间: 2018-03-09
博客简介:

qq_41813416的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    439
    当月
    1
个人成就
  • 获得50次点赞
  • 内容获得9次评论
  • 获得54次收藏
创作历程
  • 3篇
    2024年
  • 69篇
    2023年
  • 1篇
    2022年
成就勋章
兴趣领域 设置
  • 编程语言
    python
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

树的转换,逆波兰式(后缀式)

原创
发布博客 2024.09.13 ·
115 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

后缀式转换,及中缀式转换(全网最详细)

优先级相同:从右往左中缀式:1+2,1-2,1*2上面对应下面的后缀式为:12+,12-,12*
原创
发布博客 2024.09.12 ·
279 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

KMP算法计算方式

前缀:a,ab,abc,abca,abcaa。后缀:b,ab,aab,caab,bcaab。前缀:a,ab,abc,abca。后缀:a,aa,caa,bcaa。next值 0 1 1 2 2 3 1 2。前缀:a,ab,abc。后缀:a,ca,bca。模式串 a b a a b c a c。j值: 1 2 3 4 5 6 7。next值 0 1 1 2 2 3 1 2。模式串:a b c a a b b。模式串 a b a a b c a c。
原创
发布博客 2024.09.08 ·
784 阅读 ·
16 点赞 ·
0 评论 ·
14 收藏

高级深入--day47

因为redis数据库不能存储复杂对象(key部分只能是字符串,value部分只能是字符串,字符串列表,字符串集合和hash),所以我们存啥都要先串行化成文本才行。这里使用的就是python的pickle模块,一个兼容py2和py3的串行化工具。这个serializer主要用于一会的scheduler存reuqest对象。这里实现了loads和dumps两个函数,其实就是实现了一个序列化器。
原创
发布博客 2023.11.04 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day46

根据源代码来看,scrapy-redis使用了scrapy本身的一个fingerprint接request_fingerprint,这个接口很有趣,根据scrapy文档所说,他通过hash来判断两个url是否相同(相同的url会生成相同的hash结果),但是当两个url的地址相同,get型参数相同但是顺序不同时,也会生成相同的hash结果(这个真的比较神奇。而分布式跑的话,就需要各个主机上的scheduler都连接同一个数据库的同一个request池来判断这次的请求是否是重复的了。
原创
发布博客 2023.11.04 ·
478 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

高级深入--day45

scrapy-redis工程的主体还是是redis和scrapy两个库,工程本身实现的东西不是很多,这个工程就像胶水一样,把这两个插件粘结了起来。scrapy-redis的官方文档写的比较简洁,没有提及其运行原理,所以如果想全面的理解分布式爬虫的运行原理,还是得看scrapy-redis的源代码才行。负责根据setting中配置实例化redis连接。被dupefilter和scheduler调用,总之涉及到redis存取的都要使用到这个模块。
原创
发布博客 2023.11.04 ·
739 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day44

,但是Scrapy多个spider不能共享待爬取队列Scrapy queue, 即Scrapy本身不支持爬虫分布式,scrapy-redis 的解决是把这个Scrapy queue换成redis数据库(也是指redis队列),从同一个redis-server存放要爬取的request,便能让多个spider去同一个数据库里读取。Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。
原创
发布博客 2023.10.29 ·
1053 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day43

在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“保存”按钮。打开Android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。启动Android设备中的浏览器,访问网页即可在Fiddler中可以看到完成的请求和响应数据。里设置允许连接远程计算机,确认后重新启动Fiddler。代理地址(电脑IP):192.168.xx.xxx。
原创
发布博客 2023.10.29 ·
196 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day42

首先发送登录页面的get请求,获取到页面里的登录必须的参数(比如说zhihu登陆界面的 _xsrf)只要是需要提供post数据的,就可以用这种方法。如果实在没办法了,可以用这种方法模拟登录,虽然麻烦一点,但是成功率100%然后和账户密码一起post到服务器,登录成功。
原创
发布博客 2023.10.29 ·
315 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day41

的电影数据,并保存在MongoDB中。爬取豆瓣电影top250。
原创
发布博客 2023.10.26 ·
350 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day40

【代码】高级深入--day40。
原创
发布博客 2023.10.26 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day39

爬取新浪网导航页所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。
原创
发布博客 2023.10.24 ·
767 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

高级深入--day38

爬取投诉帖子的编号、帖子的url、帖子的标题,和帖子里的内容。
原创
发布博客 2023.10.24 ·
187 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day37

【代码】高级深入--day37。
原创
发布博客 2023.10.19 ·
439 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

高级深入--day36

Scrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。该字典默认为空,值(value)任意,不过值(value)习惯设置在0-1000范围内,值越小优先级越高。Item Processor(即 Item Pipeline) 同时处理(每个response的)item的最大值。可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG。下载器超时时间(单位: 秒)。
原创
发布博客 2023.10.19 ·
329 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day35

如果其返回 None ,Scrapy将继续处理该request,执行其他的中间件的相应方法,直到合适的下载器处理函数(download handler)被调用, 该request被执行(其response被下载)。如果其返回一个 Response (可以与传入的response相同,也可以是全新的对象), 该response会被在链中的其他中间件的 process_response() 方法处理。如果其返回一个 Request 对象,则中间件链停止, 返回的request会被重新调度下载。
原创
发布博客 2023.10.18 ·
330 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

高级深入--day34

使用Scrapy抓取网页时,如果想要预填充或重写像用户名、用户密码这些表单字段, 可以使用 FormRequest.from_response() 方法实现。通常网站通过 实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充。如果希望程序执行一开始就发送POST请求,可以重写Spider类的。使用FormRequest.from_response()方法。方法,并且不再调用start_urls里的url。方法发送POST请求。
原创
发布博客 2023.10.18 ·
297 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day33

它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合。在rules中包含一个或多个Rule对象,每个Rule对爬取网站的动作定义了某种特定操作,比如提取当前相应内容里的特定链接,是否对提取的链接跟进爬取,对提交的请求设置回调函数等。:指定该spider中哪个的函数将会被调用,从link_extractor中获取到链接列表时将会调用该函数。
原创
发布博客 2023.10.17 ·
224 阅读 ·
5 点赞 ·
0 评论 ·
0 收藏

高级深入--day32

Item传给Item pipline持久化 , 而Requests交由Scrapy下载,并由指定的回调函数处理(默认parse()),一直进行循环,直到处理完所有的数据为止。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。该对象包含了spider用于爬取(默认实现是使用 start_urls 的url)的第一个Request。当请求url返回网页没有指定回调函数时,默认的Request对象回调函数。包含了spider允许爬取的域名(domain)的列表,可选。
原创
发布博客 2023.10.17 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高级深入--day31

分配给每个类的整型值,确定了他们运行的顺序,item按数字从低到高的顺序,通过pipeline,通常将这些数字定义在0-1000范围内(0-1000随意设置,数值越低,组件的优先级越高)以下pipeline将所有(从所有'spider'中)爬取到的item,存储到一个独立地items.json 文件,每行包含一个序列化为'JSON'格式的'item'。当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item。
原创
发布博客 2023.10.11 ·
240 阅读 ·
6 点赞 ·
0 评论 ·
0 收藏
加载更多