前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >未闻Code·知识星球周报总结(九)

未闻Code·知识星球周报总结(九)

作者头像
青南
发布2021-11-12 10:43:31
4600
发布2021-11-12 10:43:31
举报
文章被收录于专栏:未闻Code

知识星球周报总结是对未闻Code·知识星球上的每周内容进行汇总,完全干货!

一、开发经验

用代码来约束开发者,而不是用文档。

之前发了一篇关于Python的black库格式化代码的文章一日一技:如何用一行命令格式化 Python 代码?,有人问:Pycharm就能格式化代码,为什么还要这个第三方库呢?

其实原因很简单,你会用Pycharm格式化代码,但不代表你的同事会。有些人就是不遵守编码规范。这就好像当我们用Python开发,有时候你要反复跟组员说不能乱用lambda函数,不能一个变量赋值不同类型的数据,不要什么数据都往字典堆一层套一层。但过两天他们还是要违反。所以你可以把black放到ci里面,无论是谁把代码提交到了远程仓库里面,Jenkins或者其他ci系统就会自动对代码进行格式化。

同理,如果你希望所有人在开发代码的时候,使用类型标注,并且不准给一个变量赋值不同类型的数据,你不应该在文档或者早会上面反复强调。你应该在ci里面使用mypy。如果他不遵守,那么他的代码就无法合并进入仓库。

二、问题解答

1

南哥,我在写一个协程爬虫里面单独定义了一个解析数据的函数(也是协程),是使用 yield返回的生成器换回一个生成器,但是我不知道怎么获取解析函数返回的生成器,还是协程里面不能这样写

点击空白处查看答案

parse_resp不涉及任何io操作,不需要用async来定义,成普通的生成器就行。然后

for g in result:

print(g)

2

提问:1.在做获取试卷的爬虫,网站A和网站B的某一套试卷可能会相同(但试卷标题和试卷内容不会完全相同),爬虫A的内容存到了Mongo的集合A,爬虫B的内容存到了集合B,怎么对比爬取的试卷是否重复了呢?通过类似jieba分词这样去判断相似值吗?

点击空白处查看答案

一道题怎么算是重复?需要文字和标点符号和选项顺序一模一样才算吗?还是文字可以不一样但意思需要一样?如果是前者,不用分词,直接对比就可以了。如果是后者,就需要用nlp做语义识别。这就很麻烦了。

3

接问题2,我是按分类将网站A爬虫存到集合A,网站B爬虫存到集合B,是需要通过迭代集合A的每一条数据然后去和集合B每一条数据比较吗?感觉这样似乎不太高效,还是说我应该一开始就统统存到一个集合,每次入库之前先判断下呢?

点击空白处查看答案

如果你可以一条一条分开,可以分别把他们读到Python的两个set里面。然后做交集就是相同的,做差集就是不同的。

4

如果爬取内容里有图片链接,是一个完整的url,怎么处理才能让前端直接显示访问url后的图片呢?我在数据清洗入库的时候怎么做比较好呢?

点击空白处查看答案

数据入库的时候就保留完整的URL。前端通过img标签加载这个URL对应的图片。

5

南哥,请教一个问题:git submodule 拉子模块的时候,如何不拉取指定格式的文件。例如我想忽略其中的*.c,*.h,似乎没找到可以设置这个规则的地方?

点击空白处查看答案

git update-index --assume-unchanged 文件绝对路径

6

提问:1.查看redis和scrapy_redis的日志,发现redis里已经没有request请求了,只有爬虫名:dupefilter,但日志显示还在不停爬取,这是因为我在make_requests_from_url定义了dont_filter=True的缘故吗?如果是的话,且我不关闭scrapy,这样岂不是一直在对网站发请求了吗?我应该去改动什么设置来改变这种情况吗?

点击空白处查看答案

可以开pycharm的调试模式,跟踪一下请求,看看哪几行代码一直在重复运行。

7

提问:"C:\Program Files\Google\Chrome\Application\chrome.exe" http://2523.browurl.com/gh10 后面那个是病毒吗?我把它删了谷歌主页才能自选。我是不是被追踪定位劫持了,过多几天会不会也强行改我的启动主页?

点击空白处查看答案

是的,这就是浏览器劫持的一种方法。杀毒。再不行就格式化硬盘重装系统。

8

提问:cpu密集型任务,python 除了分布式 有啥办法达到1s上千并发量

点击空白处查看答案

那单机单节点很难达到上千并发。你多开几个进程也不容易,毕竟cpu就那么几个核

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档