【吐槽】真心没有写代码的天赋

  • k
    kaidokido
    目标:准备扒http://rcpu.cwun.org/UnInfo.aspx上面全部单位的资料
    现有情况:听说过python爬虫,有点C语言基础,10多年前看过WinAPI,最多也就Excel 的VBS。

    本周一8.5 安装了python,WingIDE(pycharm太卡。。sublime不会配置。。)。开始网上看python基础,比如菜鸟 runoob,廖雪峰,莫烦
    边看教程,边学着 从hello world开始撸代码,
    周二,开始研究网站的F12。。。弄了大半天才搞清楚。。周二下午知道正则表达式,Beautifulsoup(莫烦这个教学简单易懂)

    周三:继续撸代码,因为有表格,开始看pandas。。。
    周四:pandas转dict搞了一天。。。中文内容少的可怜,只能看English版本的help 终于找到的 dataframe.to_dict("index")


    一共大概20000多家公司,公司的基本信息、资质信息等都在不同的页面。


    现在有个大问题,用的是urllib,单线程,只设置了timeout 和 time.sleep,没有多线程,没有代理池,一旦中断不知道咋整,只能撸回一个页面就写入csv( 后面打算用json导入到mongodb中)。效率真TM低下。。


    还没有看scrapy。。不知道mongodb的查询语法(嵌套的字典,作为document)


    现在网站也比较简单,没有反爬。。。没有复杂的复杂的Ajax 没有动态显示等页面。




    麻蛋的 中文搜索出来,大部分都是一言半语的没用的信息。。东抄抄西抄抄。。


    =====================

    问题:
    1、你们写爬虫的历程是啥?给个学习路径
    2、你们有没有github上 比较厉害的开源爬虫实战?
    3、怎么分析目标网站啊?
  • k
    kaidokido
    这个目标网站我是 硬找 各个页面的 。

    首页那个动态显示,我压根就不知道怎么看。。。
  • y
    yxmr
    Firefox F12+xpath
  • k
    kaidokido
    2019-08-08 22:39:04.141761 开始爬的

    到现在 进度才4.758%。。。。
  • k
    kaidokido
    回复3#yxmr


    你好面熟。为啥你的头像没了?
  • R
    Rorysky
    一开始 不要用 太多第三方库 iOS fly ~
  • M
    MR.L
    写过一个,感觉没啥意思,主要是把数据趴下来做统计(一万四的数据量),也是看d版推荐的一本书,py确实适合干爬虫
  • a
    antonychan
    多线程。。。代理池。。。速度就上去了
  • 林爱丰
    你这进度已经挺快了。python有问题一般就是把问题自己翻译成英文去StackOverflow上去找答案,最靠谱。
  • b
    bigctime
    马克一下,我也没有小尾巴~
  • s
    sjfhipda
    回复1#kaidokido

    我觉得你这种算有天赋的了,可能比很多码农都强
  • 林爱丰
    给你一个参考,加入了retry,timeout,proxies再搞个pool就好了

    1. import requests
    2. from requests.packages.urllib3.util import Retry
    3. from requests.adapters import HTTPAdapter

    4. re_try_num = 3 # 重复次数
    5. gap_time = 1 # 间隔时间
    6. retries = Retry(total=re_try_num, backoff_factor=gap_time, status_forcelist=[502, 503, 504], method_whitelist=frozenset(['GET', 'POST']))

    7. def http_get(remote_url, retries, verify, data_dict, timeout, header, proxies):
    8. try:
    9. with requests.Session() as s:
    10. s.mount("http://", HTTPAdapter(max_retries=retries))
    11. r = s.get(remote_url, verify=verify,
    12. data=data_dict, timeout=timeout, headers=header, proxies=proxies)
    13. return r
    14. except Exception as x:
    15. print("Connect Error: ", x.__class__.__name__)
    复制代码
  • f
    forfun
    js会吧,用node写
  • l
    linlance2000
    13楼是死电工。。。死电工都这样,换来换去,结果任务拖后。。。

    楼主不错了,虽然我知道python爬虫不错,不过我还是先上量化交易了,毕竟先要挣钱吃饭。
    爬虫?是不愁收入的人的事情。。
  • c
    chim
    回复14#linlance2000

    量化破产 啊不 量化交易什么进度了啊?
  • l
    linlance2000
    说对了,破产边缘,郁闷。。。第一年巨亏。。。目前第二年了,还没统计,但是账户上亏损扩大了。
  • 嘻哈小寒
    既然用了python,http客户端麻溜儿换requests吧,简单易用 iOS fly ~
  • 最低购
    [初学python][已解决循环问题,代码完美]自动复制起点章节python+Selenium脚本。
    十几行代码的事。书荒点我
  • R
    ResetLife
    从零开始2周写出一个针对excel的数据比对系统,用了pandas,异步操作等等,真的是疯狂百度和谷歌……

    iOS fly ~
  • k
    kaidokido
  • k
    kaidokido
    回复12#林爱丰


    没看懂。。明天继续搜索着看。。
    有一点我没想清楚 为啥你们都喜欢用Class?这又不是C++
  • k
    kaidokido
    回复19#ResetLife


    牛。。求学习历程和心得
  • G
    GleeU
    这么一点事就被打击了?

    大拿都是天天啃 夜夜啃 通宵啃 这么一点点吃透的
  • k
    kaidokido
    回复6#Rorysky


    正则表达式 看了好几个小时。。基本属于不会手动写。。看别人的的 还得对照着 规则来看。。只能用BS4,pandas之类了。。。。
  • k
    kaidokido
    回复13#forfun


    node.js 从入门到放弃,只用了15分钟,完全不知道在说啥。。。就看了第一章。。。说啥单线程之类的。。。
  • M
    MR.L
    回复2#kaidokido


    post请求的地址是:http://rcpu.cwun.org/UnInfo.aspx


    post请求地址时,你需要传递的参数如下图:



    微信截图_20190808234305.png


    找到这些规律后,就可以 import requests

    然后去构造requests.post请求了
  • k
    kaidokido
    回复14#linlance2000


    你量化 不用python吗???
  • f
    forfun
    回复26#kaidokido


    别看那玩意,直接看koa.js
  • a
    alvise
    说实话还不如java写呢,虽然呆板点,但是语法简单,库也多,好上手
  • k
    kaidokido
    回复26#MR.L


    那天看到header 部分。。不会构造头部 post。。明天来试试看的。。
  • r
    roadlala
    那这么比我更不适合了,跟lz基础差不多,今年上手的,header随便copy了一个,用request就跑起来了
    代理池懒得学,所以想了个偷懒办法,先翻页把所有目标链接地址都保存到csv,然后睡觉的时候读csv慢慢爬,爬过的做个标识,以便中断再继续
    页面分析更懒,基本都直接复制xpath的绝对地址定位
    现在的水平吧,30分钟可以做个在线视频学习的挂机脚本
    代码写的很三脚猫,但是省时省力省心就能实现目标,我觉得python既然门槛低,就充分利用这个特性呗
  • v
    volcano200
    对我来说是天书 iOS fly ~
  • j
    jtxql
    跟我相比你们都是牛人。
  • 4
    4color
    直接用火车头吧。
  • l
    langzer
    马克看不懂
  • l
    lokta
    回复1#kaidokido
    urllib2不好用。
    用requests iOS fly ~
  • 屋大维
    虽然python入门简单,但楼主这气势是真的要7天精通一门语言的感觉
  • x
    xiaotianhu
    puppeteer才是神器 从此再也不怕写爬虫 iOS fly ~
  • t
    tsounny
    量化交易挣了多少钱呢
  • g
    guangjian
    不错不错
  • a
    amx_002
    excel那是 vba
  • 郁鸟
    马克一下HiPDA·NG
  • w
    wilburt
    撸主辛苦的土里刨食扒代码,


    幸运已经离开这个行业了。
  • m
    mijuu
    现在互联网一个基本的应用,实际涉及到的技术层面还是很多的,你这个不仅是python ,还有http协议,多线程,数据库这些需要了解。
    而且如果想用mongodb的话,数据格式是json,shell是js,你可能还会要学点js的内容
  • 尤舒拉
    回复1#kaidokido


    LZ很不错了,我以前是做机房运维的,最多用oracle,MY SQL ,SQL server写一点简单的语句提取所需的数据,以前啥编程语言都没学过,现在到魔都来了,我这家单位让一家信息公司做OA平台,让我也学,SQL server倒是看懂一点点,c#完全看不懂啊,我想学编程,但是不知道从何下手,另外透露一下,我的函数一点不会,初中开始,就不学数学了,所以大学才读个二类本科,中文系,也是因为不用学高数才读的这个专业。求各位大拿推荐下,像我这种情况,究竟怎么学编程?题外话:本人现年36了...
  • k
    kaidokido
    回复42#老猎人


    为啥是你巅峰的时候???
  • k
    kaidokido
    回复46#mijuu


    json我就简单理解: 字典构成的列表。[{"字典项目1":
    {"子项目1":A,
    "子项目2": B }
    },
    {"字典项目2":
    ……
    }

    ]
  • f
    fqxufo
    https://book.douban.com/subject/30175598/

    买这本书,讲的很清晰 iOS fly ~