首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  
  •   storypanda · 150 天前 · 2575 次点击
    这是一个创建于 150 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    用 requests 一时爽,一直用一直爽。
        7
    gimp   150 天前
    直接用 requests 多好

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

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

    https://www.youtube.com/channel/UCFdTiwvDjyc62DBWrlYDtlQ
        20
    boluo   150 天前
    我也在买点入门的纸质书学习,求推荐
        21
    testeststs   150 天前
    这些写法没区别吧,先学点 python 基础的,自然就懂了。
    要是不想学,只想完成项目,那就抄。
        22
    Root1997   149 天前
    requests 是真的爽。
        23
    JimmyTinsley   149 天前
    用 requests 啊
        24
    LIBQ   149 天前
    说到底 他们都是一样的 条条大路通罗马 随便一种都可以
        25
    lonelygo   149 天前
    大家聚焦 import 的问题,楼主还无法想出来 requests 为啥是 humans http,一直用一直爽。
        26
    Qzier   149 天前 via iPhone
    先别写了,先从头开始学
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4274 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 02:54 · PVG 10:54 · LAX 19:54 · JFK 22:54
    ♥ Do have faith in what you're doing.