python爬虫遇到的一些杂七杂八的问题

python爬虫遇到的一些杂七杂八的问题,第1张

python爬虫遇到的一些杂七杂八的问题

周末闲来无事,写了几个爬虫程序,主要是爬图片网站的图片,还有豆瓣top250的名字和评分

具体的全部源码单独写一篇进行展示,这里只记录一下写爬虫期间遇到的一些杂七杂八的问题

1.HTTPError: Forbidden

这个主要就是爬豆瓣的时候,访问可能太频繁了,被认出来是爬虫,就拒绝访问了

解决方法主要就是:

①换个ip,不过我是手机热点,重连了依然如此,更换代理ip也是如此,可能是我代码的问题

②把代码里面agent的部分换一下,比如我的之前是:

opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36')]

我换成

opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0')]

就可以访问了,更换一个浏览器,然后打开审查元素,在里面找的

2.nothing to repeat的问题

这个就出现了一次,应该是正则模块匹配字符的时候没有匹配到任何字符,不管他

正则语法表达式我用的还不是很6,仅仅能试出来之后用代码记着,用的时候照搬

3.写入txt的问题

把变量转为字符串,然后:

with open('D:\test.txt','a',encoding='utf-8') as f:
    text = 'n'+zifuchuanbianliang
    f.write(text)

差不多就是这个意思,里面的a就是接着写,w就是覆盖

4.(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: tr

这个主要就是python里面不能用/这个斜杠代表路径

如果代表路径需要用反斜杠,因为/正斜杠代表转义字符,是python自己保留的

5.python 正则表达式 排除特定字符

一开始有这个疑问主要是因为,通过正则表达式找到一些字符,然后里面有我不需要的

(比如说我爬豆瓣的书名,结果书名爬下来了,但是里面有一些“可试读”被当做书名一起爬下来了)

后来也没弄明白,用了一个remove就去掉了“可试读”的内容

6.正则表达式排除特定字符串

输入:'一二三四五六七八九十,一二三四五六七八九十,一二三四哈六七八九十'

输出:" '三四五六' , '三四五六'  "

那就可以这么写:三[^哈]{0,6}六

[^哈]就是任意不包括哈的字符(串)的意思

7.删除字符串的首尾,主要就是用于爬下来了特定信息,但是想把格式去掉,只包含有效信息

str.strip()是删掉所有位置的特定字符串

str.lstrip()是删掉前面位置的特定字符串

str.rstrip()是删掉末尾位置的特定字符串

8.'type' object is not subscriptable

这个主要就是下标格式错误,应该是圆括号,用了下标

这个是很初级的错误啦

9.删除掉列表当中指定的元素

就是a.remove()

如果有好多个,那就

while aa in a:

        a.remove(aa)

加一个判断里面还有没有的语句

python是真方便啊,判断有没有这么简单

10.unindent does not match any outer indentation level

这个好像是制表符和空格混用了,缩进格式的问题

只需要在出问题的语句前后用几下tab就好了

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存