最近在 Python 爬虫入门,发现各种书籍写法不一样,该看(用)哪一个呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
storypanda
V2EX    Python

最近在 Python 爬虫入门,发现各种书籍写法不一样,该看(用)哪一个呢?

  •  
  •   storypanda 2019-05-24 03:27:46 +08:00 4728 次点击
    这是一个创建于 2338 天前的主题,其中的信息可能已经有所发展或是发生改变。

    关于爬虫的话,《 Python 网络采集》一书在介绍 BbeautifulSoup 时写

    from urllib.request import urlopen 

    同样这本书,随后

    from bs4 import BeautifulSoup html = urlopen("http://www......") bsObj = BeautifulSoup(html.read()) print(bsObj.h1) 

    《用 Python 写网络爬虫》写

    import urllib.request 

    还是这本书:

    def download(url): return urllib.request.urlopen(url).read() #感觉是之前代码( html = )的简写?此处也没有定义 url,可能 urlopen 可以直接定义 

    之前崔大的 Python 2.7 的文章:

    import urllib2 respOnse= urllib2.urlopen(url) #此处突然出现 response 等内容,第一个书里的代码直接就有 read 了 print response.read() 

    感觉 Python 写法多种多样,自己的博客Python 爬虫初见里也总结了一下from … import …与 import 的区别,以及得出

    urllib 通用库>urllib.quest>urlopen 函数

    但是 import 在没有 from 的情况下也可以直接导入一个 urllib.quest 等,就很奇特?

    这个是和其他语言一样,每个人的写法不一样,根据自己的风格来还是?

    这是目前单看爬虫书籍学习的疑惑,求指点以及避坑~

    第 1 条附言    2019-05-24 13:42:44 +08:00
    感谢大家,决定还是先看基础。
    26 条回复    2019-05-24 12:10:01 +08:00
    wenbinwu
        1
    wenbinwu  
       2019-05-24 03:51:16 +08:00   1
    有的用 urllib,有的用 urllib2,看一下文档
    https://docs.python.org/2/library/urllib.html
    https://docs.python.org/2/library/urllib2.html

    如何 import,看需要吧,几种方法都是一样的结果

    response 出现不出现,也是看需要
    比如你要去除一个字符串里的 abcd 四个字母
    你可以写'v2exabc'.replace('a','').replace('b','').replace('c','').replace('d','')
    或者
    remove_a = 'v2exabc'.replace('a','')
    remove_a_b = remove_a.replace('b','')
    remove_a_b_c = remove_a_b.replace('c','')
    remove_a_b_c_d = remove_a_b_c.replace('d','')
    Sylv
        2
    Sylv  
       2019-05-24 04:55:01 +08:00 via iPhone   2
    你提的这些问题属于编程基础中的基础,建议你找个 Python 基础教程重新学习一遍你就懂了,这些写法都是等价的,只是风格区别,你现在有点像还没学会走就想跑。
    Trim21
        3
    Trim21  
       2019-05-24 05:05:23 +08:00 via iPhone
    我还以为你在纠结怎么爬,原来是纠结怎么 import …

    这没啥奇特的,就是 python 同时支持两种写法。
    RHxW
        4
    RHxW  
       2019-05-24 08:11:51 +08:00   3
    假设 B 和 C 都是 A 包里的
    1.from A import B
    ->B() #OK!
    ->C() #ERROR!
    2.import A
    ->A.B() #OK!
    ->A.C() #OK!
    3.from A import *
    ->B() #OK!
    ->C() #OK!
    zw1027
        5
    zw1027  
       2019-05-24 08:29:15 +08:00
    越长的调用就越嗦,我一般直接 import 到最常调用的那一层,不是一昧的 import 最顶层或最底层
    oblivious
        6
    oblivious  
       2019-05-24 08:36:47 +08:00 via iPhone   3
    确定不使用 requests 模块?

    用 requests 一时爽,一直用一直爽。
    gimp
        7
    gimp  
       2019-05-24 08:41:15 +08:00
    直接用 requests 多好

    简介: Requests: HTTP for Humans
    tony9413
        8
    tony9413  
       2019-05-24 08:49:36 +08:00
    这些博客都过时了,python2 的语法,刚学的话,还是建议用 3,比较 2 眼看就不维护了。
    GeruzoniAnsasu
        9
    GeruzoniAnsasu  
       2019-05-24 08:51:32 +08:00 via Android   1
    能不能先把 python 语法入门看一遍求你了
    jingyulong
        10
    jingyulong  
       2019-05-24 08:53:55 +08:00
    建议把基础的书籍摆在首位,虽然应用类的书籍能够引起你的兴趣,但是把基础弄扎实了能节省很多时间。
    ctro15547
        11
    ctro15547  
       2019-05-24 09:04:24 +08:00
    感觉刚开始学 可以一步一步慢慢来 ,先看看语法,刚开始可以分步走,先 import urllib2,然后再 respOnse= urllib2.urlopen(url),后面了解了就随便怎么拼了
    U7Q5tLAex2FI0o0g
        12
    U7Q5tLAex2FI0o0g  
       2019-05-24 09:10:04 +08:00
    建议你“ Python 爬虫入门”之前先“ Python 入门”
    yth492300648
        13
    yth492300648  
       2019-05-24 09:11:50 +08:00
    9012 年了 还用 urllib 纯粹浪费时间
    ddzzhen
        14
    ddzzhen  
       2019-05-24 09:12:51 +08:00 via Android
    看 google 出来之后第一页的博客足以
    qcts33
        15
    qcts33  
       2019-05-24 09:35:08 +08:00
    tikazyq
        16
    tikazyq  
       2019-05-24 09:36:28 +08:00 via iPhone
    urllib 是非常基础的库,了解一下就可以了,现在都不用这个库来做爬虫了。要进阶的话,了解一下多线程、多进程、scrapy、pyspider、gerapy、crawlab。

    顺便安利一下来源爬虫平台 crawlab,方便管理开发你的爬虫,https://github.com/tikazyq/crawlab
    houzhimeng
        17
    houzhimeng  
       2019-05-24 10:10:40 +08:00
    统统 requests
    inhzus
        18
    inhzus  
       2019-05-24 10:29:34 +08:00   1
    这些博客有些过时了, Python 3 的爬虫几乎都是用 requests 了, 语法简单很多, 偶尔需要 urlparse 等函数的时候才用 urllib.
    现在直接上手 requests 的官方(中文 /英文)文档就好了
    datou
        19
    datou  
       2019-05-24 10:31:48 +08:00   1
    新手入门爬虫最好的视频教程还是 youtube 上台湾大数软体邱佑伟老师的视频

    https://www.youtube.com/channel/UCFdTiwvDjyc62DBWrlYDtlQ
    boluo
        20
    boluo  
       2019-05-24 10:45:25 +08:00
    我也在买点入门的纸质书学习,求推荐
    testeststs
        21
    testeststs  
       2019-05-24 10:53:32 +08:00
    这些写法没区别吧,先学点 python 基础的,自然就懂了。
    要是不想学,只想完成项目,那就抄。
    Root1997
        22
    Root1997  
       2019-05-24 11:00:59 +08:00
    requests 是真的爽。
    JimmyTinsley
        23
    JimmyTinsley  
       2019-05-24 11:20:38 +08:00
    用 requests 啊
    LIBQ
        24
    LIBQ  
       2019-05-24 11:28:43 +08:00
    说到底 他们都是一样的 条条大路通罗马 随便一种都可以
    lonelygo
        25
    lonelygo  
       2019-05-24 11:59:41 +08:00
    大家聚焦 import 的问题,楼主还无法想出来 requests 为啥是 humans http,一直用一直爽。
    Qzier
        26
    Qzier  
       2019-05-24 12:10:01 +08:00 via iPhone
    先别写了,先从头开始学
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2645 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:20 PVG 20:20 LAX 05:20 JFK 08:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86