Python 3 爬虫学习笔记1 连接

此学习笔记整理于 Ryan Mitchell Web Scraping with Python- Collecting Data from the Modern Web (2015) Chapter 1 Your first web scr

首先,需要安装BeautifulSoup4 库。


上面动图里有个错误,在命令窗口输入的应该是 pip install BeautifulSoup4,少了一个4.

from urllib.request import urlopen #这一步是用来加载库的函数

from bs4 import BeautifulSoup #同上

html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html") #打开这个网址

bsObj = BeautifulSoup(html.read()); #首先,读取这个网址回复的东西,然后用BeautifulSoup 来美化它,为什么要美化,因为这样网址发给我们的东西可以更结构化

print(bsObj.h1) #打印这个结构化的h1,什么是h1先不管,就是一个标签,这个下面有着一些内容。以后可以根据自己需要来选取标签。

捋一捋,打开了网址,读取对方发送过来的东西,然后美化它!美化后相当于有了索引,就可以按图索骥了!

如果连接不成功呢?!怎么会不成功呢?

一,如果页面不存在

try: #事先不知道页面是否存在

from urllib.request import urlopen

from urllib.error import HTTPError

html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html")

except HTTPError as e:

print(e)

else:

print('There is a page!')

以上代码显示‘There is a page!’。在这里,这个页面确存在。你也可以试一下‘http://www.pythonscraping.com/exercises/exercise3.htm’ 这个不存在,你看看返回的是什么?(HTTP Error 404: Not Found)

二,如果是服务器出现问题了,网站有问题。(这到底是咋回事我也不知道啊)

from urllib.request import urlopen

from urllib.error import URLError

try:

html = urlopen("http://www.baidu.com/")

except URLError as e:

print('cannot get access')

else:

print('the server is ok')

会返回‘the server is ok’,说明网站没问题,页面就不一定了。

有关于URLError 和 HTTPError的姿势,请移步:http://cuiqingcai.com/961.html

三, 如果是我们需要的内容不存在呢?

连接上了server,就是解决了二,然后打开了网页并返回了数据,就是解决了一,但是!如果我们需要的内容不在呢?比如,没有这个索引(tag)。如果没有这个tag,当我们用BeautifulSoup读取tag下面的数据就会返回None,如果没有这个tag,还要读取tag下面一层tag的数据,那么就会出现AttributeError.

总结一下:

以上代码都没有缩进,下面我用图片。


Python 3 爬虫学习笔记1 连接_第1张图片

def 上面定义了一个函数,这个不用管。如果不会,看下面


Python 3 爬虫学习笔记1 连接_第2张图片

好不容易写完了,写的过程自己确实学了挺多。

P.S.:没能上车的小伙伴欢迎留言,如果我会我直接回答你!如果不会,我谷歌后回答你!如果要加我微信,不行。

你可能感兴趣的:(Python 3 爬虫学习笔记1 连接)