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

2019-05-24 03:27:46 +08:00
 storypanda

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

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

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

4115 次点击
所在节点    Python
26 条回复
wenbinwu
2019-05-24 03:51:16 +08:00
有的用 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
2019-05-24 04:55:01 +08:00
你提的这些问题属于编程基础中的基础,建议你找个 Python 基础教程重新学习一遍你就懂了,这些写法都是等价的,只是风格区别,你现在有点像还没学会走就想跑。
Trim21
2019-05-24 05:05:23 +08:00
我还以为你在纠结怎么爬,原来是纠结怎么 import …

这没啥奇特的,就是 python 同时支持两种写法。
RHxW
2019-05-24 08:11:51 +08:00
假设 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
2019-05-24 08:29:15 +08:00
越长的调用就越啰嗦,我一般直接 import 到最常调用的那一层,不是一昧的 import 最顶层或最底层
oblivious
2019-05-24 08:36:47 +08:00
确定不使用 requests 模块?

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

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

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

https://www.youtube.com/channel/UCFdTiwvDjyc62DBWrlYDtlQ
boluo
2019-05-24 10:45:25 +08:00
我也在买点入门的纸质书学习,求推荐

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/567139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX