V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zictos  ›  全部回复第 131 页 / 共 132 页
回复总数  2623
1 ... 123  124  125  126  127  128  129  130  131  132  
2020-04-26 02:09:58 +08:00
回复了 suanbing 创建的主题 程序员 爬虫写得好,坐牢坐到老。现在大家还敢干爬虫的活吗?
之前爬取头条的内容被抓的人判的理由中有一条是:
为了破解头条的反爬技术,侯某等人伪造了 UA ( useragent 的缩写,意思就是“用户身份”)来绕过。

意思是伪造 UA 都不行,居然可以用这样的理由让你坐牢,反正随便用什么理由都行。破解验证码或者换 ip 就更危险了。爬虫如果不用点技术那还爬什么,现在各大网站或多或少都会有一点反爬虫的措施。
@Higurashi 刚还是试了一下,发现有报错,具体错误提示可看这篇笔记:

http://note.youdao.com/noteshare?id=b7397b8746fe671545ea1fe327c89ba5
@Higurashi 我用不到,因为我自己本身没这需求。我也不清楚你的需求是什么,按你说的似乎只有自己写笔记的时候#号标得很规则才能有用。既然这样,那还不如手动标。

另外用太多标题作为层级的笔记并不好看,层级太多用项目符号或者缩进更好。你的代码经过我之前的测试发现好像只有#号很规则的情况下才有用,如果随机在某些行加入一些#号,最终标出来的序号是非常乱的。

我之前没事也有试着重新写了一下,我写的代码即便在#号随机标得很乱的情况下添加的序号也还算规则。只是不知道究竟该用什么算法,不知道是相同的#号数量用相同的层级还是用相对的方式增加或减少层级,相对的方式就是说发现#号比上一行多就增加一个层级,比上一行少就减少一个层级。

总之不管用什么方式都无法保证很规则,最终都还是可能标得很乱。我感觉这个程序实在没什么用。除非你能明确自己的需求,确保自己在笔记中的序号一定是规则的,一定是你预先考虑到的情况,不会出现其他特殊情况。

下面是我后来写的代码:
http://note.youdao.com/noteshare?id=3cd18b9191d748c0db3dabb6893da3d1
2020-04-22 18:01:39 +08:00
回复了 foreverfuck 创建的主题 程序员 写个爬虫爬取值得买的商品和文本会被安排进去吗?
@nellace 部分可能是手动发的吧?现在不止官方的人可以发,用户也可以发布优惠商品。反正他们不数据来源不单一,所以就比单一来源的爬虫更能为自己开脱
@Higurashi 刚又试了一下,好像也不是很容易出错。只是复制你上次的帖子中的例子会报错,其他内容很少报错:
TypeError: write() argument must be str, not None

另外如果第一行有 6 个#号,第二行只有 3 个#号。第一行是 1,第二行是 1.1 吗?
@Higurashi 试了感觉好像问题很多,很容易出错。不过这东西我也用不到。随便复制一段文本到文件中,然后随便在某些行的前面加一些#号,运行后肯定会报错。
完全可以做到不报错啊,但是你得说清楚几个#号算大标题,然后子项又怎么确定?就是我之前跟你说的那些。
2020-04-21 11:59:31 +08:00
回复了 waiaan 创建的主题 程序员 大家平时遇到新的功能需求一般是网上复制粘贴还是自己写?
熟悉了自然就自己写了。
网上粘贴的代码很多时候也要修改。
一般自己写不出,或者需要去网上查询并参考下别人的代码的时候,如果刚好有现成的代码并且不需要做过多的改动肯定是复制粘贴的。

总结一下就是:不依赖,但能省事还是尽量让自己轻松点。你修改别人代码的时候也是一个熟悉的过程,而且我会尽量去把别人的代码的每一行都读懂,而不是直接粘贴了就都不管了。
@Higurashi #号突然变少就从 1 变成 2 是吧?比如你刚举的例子中从 5 个#号变成 2 个#号,序号就从 1 变成 2 了。可是如果 1.3.2 后面还有 1.4 呢? 1.3.2 后面如果是 4 个#号就是 1.4 吗?
大标题中 1 是三个#号,怎么 2 又只有两个#号?

我不太懂 Markdown 的习惯,也不一定每个人都一样吧?序号也本身是手动标的,Markdown 不会默认生成。总之我依然无法完全搞清楚你的所有需求。

只要你能够把需求完全说明白,还是很好实现的。只是稍微有点麻烦,我就懒得再写了。我之前写的你稍微参考下吧,大致套路就是那样的。
服了,我怎么知道你什么时候需要 1.2.1 、1.2.2 啊?之前以为是 1.3 、1.4 。所以写的是 1.3 、1.4,你可以参考下,除了 1.2.1 变成了 1.3,1.2.2 变成了 1.4,其他都是一样的:

with open("test.md", "r+" , encoding='utf-8') as f:
text=f.read()
f.seek(0)
a=0
b=0
c=0
for i in text.splitlines():
print(i)
if 0<i.count('#')<3:
a=a+1
space=i.find(' ')
i=list(i)
i.insert(space+1, str(a)+'. ')
i=''.join(i)
f.write(i+'\n')
f.flush()
b=0
c=a


elif i.count('#')>=3:
b=c+b+0.1
b=round(b,1)
space=i.find(' ')
i=list(i)
i.insert(space+1, str(b)+' ')
i=''.join(i)
f.write(i+'\n')
f.flush()
c=0

else:
f.write(i+'\n')
f.flush()
@tt67wq 关键是有时候说得好像不是算法工程师的程序员就一点算法都不懂似的。而我不是运动员,但没有人说我什么运动都不会
@em70 没学好,不喜欢学这门课,所以这门课混过去的
比如 while 循环或者 for 循环,每轮循环后加 1 或者减 1,这种算不算一种套路或者一种算法呢?
@wutiantong 经常说某某 app 的推荐算法,这种不都是 app 自己根据实际需要写的吗?根据用户的特性来推荐一些东西。这种算不算复杂的业务逻辑代码?

还有比如我的程序中间有一个功能,但功能有用到前面的一些变量,变量的内容可能不同,变量不同,我的功能实现的效果就不同。这种是不是就算复杂的业务逻辑代码呢?
@wutiantong 按概念来说就是,网上有人说算法就是程序中的套路。

百度百科的概念:算法( Algorithm )是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

比如一个函数,提供几个参考,函数中间有一些计算来达到自己需要的功能,这个函数不算一个算法吗?

我并没有说是整个代码或一些乱七八糟的代码加在一起叫做算法,但有时候实现某个功能可以把一些代码段看做一个整体。

难道算法只能指二叉树遍历,快速排序,动态规划这些吗?那算法这个词还真是误导人,百度百科的算法概念也挺误导人。
@oatw 主要是从网上搜到算法的定义并没有说只是主要指二叉树遍历,快速排序,动态规划之类的。另外算法一词有些误导,从字面意思让人觉得凭什么说我不懂算法?不懂算法还怎么写程序?程序不是一直都在计算吗?

具体功能具体对待,你也不能说某个程序员什么算法都不懂。就算是你说的一些公知的算法,很多程序员也或多或少都会接触一点的,不然有时候代码写起来会很复杂或感觉没法写,这个时候自然而然就会去网上寻找一些更好的办法。既然有去网上找过办法,就代表接触过一些算法,那面试的时候也代表这种程序员或多或少懂一些算法,而不是什么算法都不懂。

之所以问这个问题,主要是我对算法理解不够透彻。看了那么多回答后我觉得系统地学习下算法还是很有好处的。
@Perry 而且比较复杂的功能提前谷歌一下并没坏处,防止走弯路,大致参考一下就行。谷歌搜到的结果只要是精准的,一般并不会是效率一般的,往往都是比较好的方法,不会走什么弯路。反倒是再牛的人单靠自己思考,也难免有走弯路的时候。网上发出来的东西往往都是走过弯路之后得出来的,或者已经参考过很多其他人写的东西后再写出来的,所以类似的功能在网上的实现思路都差不多,都很少走弯路。
@Perry 我只是觉得有些误解,比如要求某人懂算法,那岂不是那个人有可能不懂算法?不懂算法还能写程序吗?我也没说一定是新手什么都没学过,什么都要去谷歌。假设某人已经有几年的经验,已经在实际经验中通过谷歌了解到不少算法,很多算法以后可以直接使用,并不需要再谷歌。但可能他从没专门去学过算法,那你能说他不懂算法吗?

另外很多编程语言的教程实际上也是在教各种各样的算法,就是举一些例子去教大家怎么实现。
@jmc891205 我没单独学算法,但是当自己需要某些功能的时候会去网上搜索,然后很多人会说到二分查找,慢慢地就在心里知道了有这种办法,积累了很多经验。以后有处理类似有规则的并且数据量大的数据查找的需求的时候就自然会想到二分查找。这样也算是懂算法了吧?
补充:我个人觉得在写代码实现需要的功能时的 “套路” 是根据经验积累而来的,而不是学了算法就会各种各样的套路
1 ... 123  124  125  126  127  128  129  130  131  132  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2875 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 13:33 · PVG 21:33 · LAX 06:33 · JFK 09:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.