V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vtea
V2EX  ›  随想

想放弃了,这种挫败感,自学的障碍

  •  
  •   vtea · 2016-07-30 10:56:26 +08:00 via iPhone · 5165 次点击
    这是一个创建于 3067 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人小白,这几天自学 python 爬虫,爬单位内网 oa 。
    各种不顺利啊,单位 oa 要工号密码登录,一段时间自动断开,同时是用 ajax 的动态网页。

    起初学 python 一直用标准库, cookie 一直获取不到也登录不了,不知原因,后来发现 requests 第三方库好,又下载了,依然不成功。

    下载了几本 python 书,看着作用不大,网上类似的教程看了也不成功, python 自带的文档看不太懂。

    感觉自己还是因为学的不系统,直接拿来主义,很多东西都不是太了解,网页的基础知识欠缺,只知道 fiddler 抓包看看 post/get 。

    折腾了几天,感觉没什么收获,只会爬爬简单的静态网站。单位都是采用 ajax 的 asp 网站,克服不了,这种挫败感让人想放弃。。。
    第 1 条附言  ·  2016-07-30 16:19:05 +08:00
    谢谢大家热心的鼓励,我要学的东西还有好多,加油
    42 条回复    2016-07-31 19:35:31 +08:00
    kindjeff
        1
    kindjeff  
       2016-07-30 11:04:50 +08:00 via iPhone   ❤️ 1
    那就模拟 ajax 呗
    bengol
        2
    bengol  
       2016-07-30 11:05:37 +08:00 via Android   ❤️ 1
    加油,放弃
    wenmingvs
        3
    wenmingvs  
       2016-07-30 11:06:12 +08:00 via Android   ❤️ 1
    留言看看网友有好的建议不
    Lonely
        4
    Lonely  
       2016-07-30 11:08:32 +08:00 via Android   ❤️ 1
    有问题就问啊…
    loading
        5
    loading  
       2016-07-30 11:09:27 +08:00 via Android   ❤️ 1
    说一声,直连数据库…
    vtea
        6
    vtea  
    OP
       2016-07-30 11:15:28 +08:00 via iPhone
    @kindjeff 不会 ajax 。。。看来要恶补
    @bengol 主要是挫败感
    @wenmingvs @Lonely 问题是我也不太懂,同时单位的 oa 是内网,上不了外网。仅我自己看网页源码,要抓的网页数据是通过 ajax 调用后台数据库。
    PS 吐槽下单位旧系统 php 网页,居然 chrome 登录不行只能 ie6
    phperstar
        7
    phperstar  
       2016-07-30 11:20:46 +08:00   ❤️ 2
    先下载别人的代码看看呀,然后再别人代码上再修改成自己要用的。 造轮子得先学会拆轮子,这样学习起来也比较快
    xiaoshangmin
        8
    xiaoshangmin  
       2016-07-30 11:29:17 +08:00 via iPhone   ❤️ 1
    几天?我在学校自学 php 和 Python 什么问题都是自己搜索解决的 身边就没有一个喜欢打代码的 加过各种技术群 在论坛发过各种问题贴 从一个选错软件专业的人 花了快一年多 懂得 mvc 网页 翻墙 搭 lamp 爬虫 噢对 还会双击装系统 出来工作才发现我应该转行当厨师的 蛋炒饭 水煮方便面不加调料 现在都是我的拿手菜 不说了 要去送外卖了
    6IbA2bj5ip3tK49j
        9
    6IbA2bj5ip3tK49j  
       2016-07-30 11:42:43 +08:00   ❤️ 1
    为什么会有人觉得 ajax 不好抓, ajax 才是最好抓的,直接发请求就好了。
    hellojinjie
        10
    hellojinjie  
       2016-07-30 12:36:56 +08:00 via Android   ❤️ 1
    写代码的时候,你需要旁边有能 google 的电脑。这样自学会很快
    a412739861
        11
    a412739861  
       2016-07-30 12:54:45 +08:00   ❤️ 1
    用 chrome 的 web develop tool , windows 应该是 F12 ,能看出很多东西。也可以会记录请求。
    terence4444
        12
    terence4444  
       2016-07-30 12:59:51 +08:00 via iPhone   ❤️ 1
    从简单的开始
    markx
        13
    markx  
       2016-07-30 13:02:50 +08:00   ❤️ 1
    从简单的开始+1.
    如果一开始有多都不懂的话,做起来确实会很没方向,也会遇到很多奇怪的问题。
    icedx
        14
    icedx  
       2016-07-30 13:05:52 +08:00   ❤️ 1
    看在你经常光顾午夜俱乐部的份上 有啥就问我吧
    INW017bzMfgkkYGn
        15
    INW017bzMfgkkYGn  
       2016-07-30 13:08:28 +08:00   ❤️ 1
    @xgfan 哈哈,那是你还没遇见难抓的,比如: http://www.tianyancha.com/s.json
    Ahri
        16
    Ahri  
       2016-07-30 13:23:08 +08:00   ❤️ 1
    楼主需要先看懂 HTTP 协议。
    yamyamyuo
        17
    yamyamyuo  
       2016-07-30 13:47:19 +08:00   ❤️ 2
    最好的学习方法,看国外的 mooc ,先把国外的计算机基础课程都跟着学下来,并把项目都做了,你慢慢会有感觉,感觉楼主还没入门, google + stackoverflow oriented programming 几乎可以解决你遇到的任何问题,如果还有问题解决不了,那就去 stackoverflow 发帖子问咯
    buckyRRRR
        18
    buckyRRRR  
       2016-07-30 13:54:48 +08:00 via iPhone   ❤️ 1
    才几天而已,而且几天里又有多少时间是在真正在学编程, Python 好学,不过好学是相对的说法,编程本身并不简单呀,最起码过一个月再说吧
    UnisandK
        19
    UnisandK  
       2016-07-30 14:01:05 +08:00   ❤️ 1
    先用 postman 调通了再去写代码实现
    DoraJDJ
        20
    DoraJDJ  
       2016-07-30 14:18:57 +08:00 via Android   ❤️ 1
    @xgfan +1 ,只要上 F12 的 Network 标签里寻找 xhr ,然后照着请求弄一个就好了。
    还可以把请求复制成 curl 命令方便研究。
    ytmsdy
        21
    ytmsdy  
       2016-07-30 14:27:15 +08:00   ❤️ 1
    ajax 是最好抓的,请求简单,返回的数据又标准。
    lxy
        22
    lxy  
       2016-07-30 14:40:07 +08:00   ❤️ 1
    我一直觉得爬虫不是新手能够随便上手的东西,简单的静态页面就罢了,遇到稍微复杂点的就容易懵逼。爬虫需要了解一些前端和后端的基础知识,至少知道整个请求交互过程是怎样起作用的。
    wizardforcel
        23
    wizardforcel  
       2016-07-30 14:43:23 +08:00   ❤️ 1
    fiddler 也可以发包的。先用 fiddler 调通了再写 python 吧。
    gpw1987
        24
    gpw1987  
       2016-07-30 14:45:32 +08:00   ❤️ 1
    不好着急呀,有些东西自学是比较枯燥的,所有好的教程还是很有必要的。
    dreamcog
        25
    dreamcog  
       2016-07-30 16:10:10 +08:00   ❤️ 2
    慢慢来~~~以前看过一篇文章,讲如何成为编程高手。大概的意思是说,千万不要相信 XXX 上面的《 15 天精通 XXXX 》,《 7 天成为 XXX 高手》,真正成为一名编程高手需要 10 年。

    最初做项目的时候,我从来没有学过程序,只会做设计和一些 HTML ,后来就自己学 PHP,JS,PYTHON 。直到今天我也会发现每天都在进步,都学习到更多的知识。最重要的事情是找一个 TODO 把要做的事情写下来,然后去一个一个攻克它,最后发现进步的还是自己。

    一定需要兴趣,慢慢来的决心。
    vtea
        26
    vtea  
    OP
       2016-07-30 16:13:21 +08:00
    @loading 不知数据库密码。。
    @phperstar 我也是这么想的,只是发现自己欠缺很多知识
    @xiaoshangmin 大神。。。受我一拜
    @xgfan 我改去学 ajax
    @hellojinjie 恩,是的,有很多前辈的经验
    @a412739861 这个我知道,只是很多看不懂
    @terence4444 是的,抓普通网页保存到 txt 会弄,现在想抓单位的 oa 却不行了
    vtea
        27
    vtea  
    OP
       2016-07-30 16:18:27 +08:00
    @markx 恩,是的,渐进吧
    @icedx 好的大神,求联系方式(手动斜眼)
    @Ahri 恩,要学习的很多
    @yamyamyuo 恩恩,谢谢指点
    @buckyRRRR 因为基础学过 vb ,所以直接想用 python 了,发现遇到好多问题
    @UnisandK 哦哦。一个 chrome 插件,我用 fiddler 抓包的
    @lxy 对对,就是这个感觉,简单的静态网页还行,遇到复杂的就懵逼了
    @wizardforcel 恩,谢谢指点
    @gpw1987 个人感觉有目的驱动比较好,但是自己遇到了大难题,有种挫败感
    @dreamcog 恩,慢慢来,谢谢指点
    cfans1993
        28
    cfans1993  
       2016-07-30 16:21:23 +08:00   ❤️ 1
    @dreamcog 我看的版本和你不一样, 我看是 30 天精通 java, 第一周学习基本语法, 第二周 io, 第三周多线程, 第四周研究时光穿梭机, 第 30 天穿越回 10 年前且杀死自己, 然后重新开始学习... :D 纯属娱乐
    a412739861
        29
    a412739861  
       2016-07-30 17:03:57 +08:00   ❤️ 1
    @vtea 补充一下楼上的 Postman 是 chrome 的一个插件。
    我用的时候是,开 develop tool 看页面结构,
    使用方法,可以看一部分这个,虽然我也没看全: https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools
    fiddler 抓包应该问题不大了。我还遇到过 js 加密的…… ajax 没遇见过,所以不是很了解。
    我用的 requests+BeautifulSoup4 ,后者解析网页用的,不知道你这用不用的上。
    icedx
        30
    icedx  
       2016-07-30 17:13:16 +08:00 via Android   ❤️ 1
    956815 零 82
    vtea
        31
    vtea  
    OP
       2016-07-30 17:31:08 +08:00
    @a412739861 恩,谢了
    tairan2006
        32
    tairan2006  
       2016-07-30 17:32:40 +08:00   ❤️ 1
    看到标题我还在猜,楼主是在自学 Haskell/Scalar 还是 Rust 呢…

    结果竟然是 Python 爬虫,这个其实不难的,动态网页你可以用无界面浏览器,等它加载完了不就是静态网页了。。
    seandor
        33
    seandor  
       2016-07-30 17:33:33 +08:00   ❤️ 1
    我也有过这种经历,以前想爬别人一个博客,我发现右键可以查看源文件里面显示的阅读量的数字,但是我爬虫却抓不到,然后就在网上问别人,别人告诉我这是动态的数据,还说什么 JSON 之类的。那时我连 JSON 是啥都不知道, AJAX 也不知道是啥。后来就放弃了。

    不过最近有了一些新的感悟。我那时搞不定那个数据抓取的问题是因为我面前有一道知识断层,除非我花时间耐心地将这些知识补齐,我是很难跨越过去的。自学就很容易遇到类似的问题。
    vtea
        34
    vtea  
    OP
       2016-07-30 18:04:58 +08:00
    @tairan2006 咦,这些思路不错。。
    @seandor 对、对,就是这样的,因为前面知识有断层,所以各种碰壁,现在开始补知识
    Stupitch
        35
    Stupitch  
       2016-07-30 20:24:50 +08:00 via Android   ❤️ 1
    直接上爬虫,当然问题多多,而且没有方向,先把 Python 基础掌握好了吧,到时候就能懂自己到底要干啥了
    zzzreg
        36
    zzzreg  
       2016-07-30 20:30:11 +08:00   ❤️ 1
    asp 的页面可能爬起来没有那么简单。。之前想爬学校一个设备管理的内部网站,看了一下点击每个链接都是 post 一个表单,表单里一堆莫名其妙的数据, url 根本没有变化。。所以你要去哪个页面必须先到主页,再一步一步点过去,保存书签也是不行的。目测是拿 vs 拖出来的,这种网页还真不好爬。。
    sola97
        37
    sola97  
       2016-07-31 02:00:09 +08:00   ❤️ 1
    之前爬教务系统,写了好几天,抓了部分数据,最后还是拿着现成漏洞直连数据库了
    eoo
        38
    eoo  
       2016-07-31 07:24:06 +08:00 via Android   ❤️ 1
    首先你得会基本的 http 协议和 Python 爬虫所需要的模块。
    scg16
        39
    scg16  
       2016-07-31 10:03:59 +08:00   ❤️ 1
    我也想自学 python 呢,还没开始
    求楼主指路
    BlueMeow
        40
    BlueMeow  
       2016-07-31 13:54:41 +08:00   ❤️ 1
    @zzzreg “莫名其妙的数据”应该是 base64 ,解码下即可知道内容。
    vtea
        41
    vtea  
    OP
       2016-07-31 18:37:09 +08:00
    @zzzreg 是的,刚起步,就碰到一个难题。单位里的网站都是这样的 asp , url 没变化。话说 vs 是指 visual studio 吗?
    @sola97 恩,能直连数据库最好
    @eoo 是的是的
    @scg16 个人感觉有目的性的自学比较有动力,有需求想去解决,于是遇到问题就去学习,应该学的比较快吧
    eoo
        42
    eoo  
       2016-07-31 19:35:31 +08:00 via Android
    @vtea 一边学一边攻克吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:09 · PVG 08:09 · LAX 16:09 · JFK 19:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.