此学习笔记整理于 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.
总结一下:
以上代码都没有缩进,下面我用图片。
def 上面定义了一个函数,这个不用管。如果不会,看下面
好不容易写完了,写的过程自己确实学了挺多。
P.S.:没能上车的小伙伴欢迎留言,如果我会我直接回答你!如果不会,我谷歌后回答你!如果要加我微信,不行。
网友评论