美文网首页我的Python自学之路
Python 3 爬虫学习笔记1 连接

Python 3 爬虫学习笔记1 连接

作者: 懒大 | 来源:发表于2017-02-03 04:15 被阅读0次

    此学习笔记整理于 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.:没能上车的小伙伴欢迎留言,如果我会我直接回答你!如果不会,我谷歌后回答你!如果要加我微信,不行。

    相关文章

      网友评论

        本文标题:Python 3 爬虫学习笔记1 连接

        本文链接:https://www.haomeiwen.com/subject/nonlittx.html