美文网首页
python3.5 + Scrapy踩过的那些坑

python3.5 + Scrapy踩过的那些坑

作者: 水瓶由希君D | 来源:发表于2017-06-10 12:00 被阅读0次

验证码登录:

scrapy 通过 xpath 模块可以轻松解析出所需的标签,这个暂且不提。项目中遇到一个问题,在解析图形验证码的过程中发现其url只一个固定值,我们通过Request直接获取到图片地址, 然后我试图使用urllib.urlretrieve 来下载图片然后登录,然后发现每一次验证码都不正确。经过分析发现,每一次download的图片都会变化,所以得出结论:服务器是通过cookie判断身份的唯一性,因此请求页面的request需和download图片的request保持一致性,至少cookie需一致。因为我配置相同的headers直接使用get请求下载图片,结果正确。

此外,需注意cookie的时效性,做了一个过期自动登录的策略。

使用脚本运行scrapy脚本

scrapy官方推荐使用scrapy crawl spiderName 来运行脚本,我们需要需要根据需求做一个通过api调用执行的脚本。

1、首先尝试使用CrawlerProcess

搭建一个简易的flask框架

```py

        app = flask(__name__)

        @route('/login')

            def login():

            process.run()`</blockquote>`

```

报错:processor必须在主线程运行

2、之后改用CrawlerRunner,成功!

然而,当第二次调用login时报错:Scrapy - Reactor not Restartable

reactor是单例,一旦创建无法重启,所以无法可持续。

3、第二种方法或许有解决方案,并没有深究。于是想到最简单的一种方案,直接使用os.system(cmd),岂不美哉?想一想还有点小兴奋呢! So, CrawlerScript.py为scrapy启动器。

 另写一个run.py


```python

@app.route('/login_chezhibao/username=&password=',methods=['GET','POST'])

        def login(username, password):

            cmd ='python CrawlerScript.py'

            print(os.system(cmd))

            return 'success'

```


运行,还是报错...  这次是 no module name scrapy

无法识别scrapy!明明已经装了, Why??

于是在Terminal手动敲 python CrawlerScript.py 同样的错!

最后恍然大悟, 我用的scrapy是基于python3安装的,于是改成python3 CrawlerScript.py

成功!

相关文章

  • python3.5 + Scrapy踩过的那些坑

    验证码登录: scrapy 通过 xpath 模块可以轻松解析出所需的标签,这个暂且不提。项目中遇到一个问题,在解...

  • 那些年,英国留学的学长学姐替你踩过的坑

    那些年,你的前辈们踩过的坑,千万记得要避过去啊! 前人栽树,后人乘凉。想必一谈起英国留学时踩过的那些坑,很多人都能...

  • 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向

    踩过的那些坑 从2011年开始玩Zabbix,踩过的坑着实不少,被研发的同事吐了无数槽,所谓“情到深度又爱又恨“。...

  • 交互设计师所要避免的几个坑

    前言 工作中难免会踩到几个坑,即使现在不踩以后还会踩,只有踩过才会深刻记住,踩过说明爱过!但是踩过的坑必须把坑填满...

  • python3.5使用scrapy的坑

    环境win10-64+python3.5+scrapy1.2a b c d e如果scrapy crawl xxx...

  • 那些年所踩过的那些坑

    2015年的硝烟散去的那场股灾 笑来老师打过一个形象的比喻,如果不懂市场,却又要去投,无异于打着个火把经过火药库而...

  • 减肥踩过的那些坑

    时间过得很快,也很慢,关键看你在什么状态…… 从3月18号开启减肥模式,说实在的刚开始,很煎熬挑战食欲,战胜自己的...

  • 那些年踩过的坑

    1.iphone手机,input元素readonly仍获取了焦点. 解决办法:直接在dom节点添加内联事件onfo...

  • 爬虫踩过的那些坑

    在建模分析的过程中,数据的获取总是第一步,小公司不像大厂那样有专门的爬虫工程师,除了公司的数据积累,很多时候需要自...

  • 那些年踩过的坑

    RecyclerView的IndexOutOfBoundsException异常 大半年没有敲代码了,顺手写个上拉...

网友评论

      本文标题:python3.5 + Scrapy踩过的那些坑

      本文链接:https://www.haomeiwen.com/subject/jzjbittx.html