Python爬虫不报错也不出结果(爬虫运行成功不报错但没数据)

http://www.itjxue.com  2023-03-30 22:04  来源:未知  点击次数: 

python运行正常,但不出现结果?

答: 在你的第5行代码当中,确实执行了打印语句,而且整个程序也没有报其它错误。说明并不是出错的问题,那我们要思考一下是不是要打印的那个内容的数值为空呢?如果是这样的话,我们确实将去打印的,但是却不到结果,所以我建议你要先去检查一下那个打印的值。希望可以帮助到你。

python爬虫爬取不出信息

Python爬虫程序本身没有问题,但是却爬取不了数据主要原因如下:

1.对方有反爬程序

几乎所网站为了防止一些恶意抓取,会设置反爬程序,你会发现明明很多数据显示在浏览器上,但是却抓取不出来。

2.伪装方式没有绕过目标网站反爬

网站都有反爬虫机制,防止爬取数据,爬虫想要爬取数据,就需要隐藏自身的身份,伪装成用户的身份进行访问,如果没有伪装好,被检测到爬虫,也是被会限制的。比如请求头没有设置好,Cookie问题等等。

3.IP被限制

爬虫除了IP所有数据都可以伪装,当你的IP访问次数过多之后,就会被限制住,再也无法访问了。这个时候就需要带入ip代理池了。

python代码没错但运行不出来

;?????python代码没错但运行不出来是什么原因呢?不知道的小伙伴来看看今天的分享吧!

??????1、python代码没错但运行不出来的原因:

??????某项目中使用python脚本方式将日志文件中的数据持续的转换格式输出到另一文件中以供其他日志分析应用使用。但是当后台运行采取重定向方式输出到某一文件时,发现并没有内容输出,命令如下:

??????pythonxxx.pyxxx.log

??????测试发现,当前台直接输出到终端时正常,使用后台运行重定向的方式输出到文件中时无法输出。

??????2、解决办法:

??????发现是在程序运行时,输出有缓存,只有当程序运行结束或者缓冲区满后才会输出。因为程序是一致在运行的所以不可能等待程序结束在输出。并且要求是有实时性的所以等缓冲区满输出的方式也不可取。

??????所以采用在python运行时加上-u参数,如:

??????python-uxxx.pyxxx.log

??????-u参数的意义是不使用缓冲的方式输入输出

??????详细如下:

??????Forcestdin,stdoutandstderrtobetotallyunbuffered.Onsystemswhereitmatters,alsoputstdin,stdoutandstderrinbinarymode.Notethatthereisinternalbufferinginxreadlines(),readlines()andfile-objectiterators("forlineinsys.stdin”)whichisnotinfluencedbythisoption.Toworkaroundthis,youwillwanttouse"sys.stdin.readline()”insidea"while1:”loop.

??????补充知识:python中运行代码时没有报错但是也没有输出而且还有exitcode0的结束标志

??????如下所示:

??????f=open("passwd.txt",'r')

??????print(f.read(4))

??????f.close()

??????这是想要执行的代码

??????passwd.txt中的内容

??????ntp:x:38:38::/etc/ntp:/sbin/nologin

??????apache:x:48:48:Apache:/var/www:/sbin/nologin

??????saslauth:x:498:76:Saslauthduser:/var/empty/saslauth:/sbin/nologin

??????postfix:x:89:89::/var/spool/postfix:/sbin/nologin

??????gdm:x:42:42::/var/lib/gdm:/sbin/nologin

??????pulse:x:497:496:PulseAudioSystemDaemon:/var/run/pulse:/sbin/nologin

??????但是输出的结果是

??????Processfinishedwithexitcode0

??????后来排查发现原来是解释器的问题

??????我之前使用的解释器是pycharm提供的虚拟解释器

??????#####如何查看解释器

??????点file?Cnewprojects

??????如果选择的是2就是使用了pycharm提供的虚拟解释器,又因为passwd.txt文件不是在虚拟环境中的所以就没有输出。

??????点击3然后选择你已经下载好的解释器即可。

??????以上就是今天的分享了,希望可以帮助到大家。

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章