V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · May 24, 2019 · 5084 views
    This topic created in 2536 days ago, the information mentioned may be changed or developed.

    关于爬虫的话,《 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 等,就很奇特?

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

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

    Supplement 1  ·  May 24, 2019
    感谢大家,决定还是先看基础。
    26 replies    2019-05-24 12:10:01 +08:00
    wenbinwu
        1
    wenbinwu  
       May 24, 2019   ❤️ 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  
       May 24, 2019 via iPhone   ❤️ 2
    你提的这些问题属于编程基础中的基础,建议你找个 Python 基础教程重新学习一遍你就懂了,这些写法都是等价的,只是风格区别,你现在有点像还没学会走就想跑。
    Trim21
        3
    Trim21  
       May 24, 2019 via iPhone
    我还以为你在纠结怎么爬,原来是纠结怎么 import …

    这没啥奇特的,就是 python 同时支持两种写法。
    RHxW
        4
    RHxW  
       May 24, 2019   ❤️ 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  
       May 24, 2019
    越长的调用就越啰嗦,我一般直接 import 到最常调用的那一层,不是一昧的 import 最顶层或最底层
    oblivious
        6
    oblivious  
       May 24, 2019 via iPhone   ❤️ 3
    确定不使用 requests 模块?

    用 requests 一时爽,一直用一直爽。
    gimp
        7
    gimp  
       May 24, 2019
    直接用 requests 多好

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

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

    https://www.youtube.com/channel/UCFdTiwvDjyc62DBWrlYDtlQ
    boluo
        20
    boluo  
       May 24, 2019
    我也在买点入门的纸质书学习,求推荐
    testeststs
        21
    testeststs  
       May 24, 2019
    这些写法没区别吧,先学点 python 基础的,自然就懂了。
    要是不想学,只想完成项目,那就抄。
    Root1997
        22
    Root1997  
       May 24, 2019
    requests 是真的爽。
    JimmyTinsley
        23
    JimmyTinsley  
       May 24, 2019
    用 requests 啊
    LIBQ
        24
    LIBQ  
       May 24, 2019
    说到底 他们都是一样的 条条大路通罗马 随便一种都可以
    lonelygo
        25
    lonelygo  
       May 24, 2019
    大家聚焦 import 的问题,楼主还无法想出来 requests 为啥是 humans http,一直用一直爽。
    Qzier
        26
    Qzier  
       May 24, 2019 via iPhone
    先别写了,先从头开始学
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2723 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 13:46 · PVG 21:46 · LAX 06:46 · JFK 09:46
    ♥ Do have faith in what you're doing.