美文网首页大数据和量化交易我的Python自学之路
Python爬虫笔记一 ——爬取网页题目

Python爬虫笔记一 ——爬取网页题目

作者: ironbeak_owl | 来源:发表于2016-11-20 13:48 被阅读173次

    爬虫是Python十分广泛的应用,有人说不会爬虫,就像没有学过Python。这个系列的文章就是爬虫入门笔记,面向的是零基础小白,手把手教你写爬虫哦。


    第一步 : 获取网页

    爬虫需要从Web中获取大量数据,那么第一步就是得到网页内容。我们准备用urllib模块。这个模块是Python标准库之中的,推荐大家去看一看官方文档。Google python class里也有介绍。

    from urllib.request import urlopen
    html  = urlopen("http://www.pythonscraping.com/pages/page1.html")
    print(html.read())
    

    这样就能看到你想爬取的网页的内容了,不过这时输出的格式十分混乱。所以我们需要BeautifulSoup库进行处理。

    第二步 : 格式处理

    from bs4 import BeautifulSoup
    bs_obj = BeautifulSoup(html.read())
    print(bs_obj.title)
    

    BeautifulSoup 可以将原本混乱的html格式转化成便于阅读和分析的格式。其中bs_obj.title访问的就是网页下tltle这个标签的内容。bs_obj.tag1.tag2访问的就是tag1下的tag2这个标签。当然如果不存在这个标签,就会报错。现在你就能爬取到网页的title了,是不是很简单,当然这只是个小例子,后面能做的还有很多。

    第三步 : 异常处理和可重用

    在爬取网页的过程中肯定会遇到意外情况,所以脚本设计时就要考虑这个问题。另外打码的可重用性也是很重要的。

    from urllib.request import urlopen
    from urllib.error import HTTPError
    from bs4 import BeautifulSoup
    
    def get_title(url):
        try:
            html = urlopen(url)
        except HTTPError as e:
            return None
        try:
           bs_obj = BeautifulSoup(html.read(), "lxml")
           title = bs_obj.title
        except AttributeError as e:
            return None
        return title
    
    title = get_title("http://www.pythonscraping.com/pages/page1.html")
    if title == None:
        print("Title not found")
    else:
        print(title)
    

    大家可以看看这个代码,应该很简单。这是最基本爬虫,之后我会再写些更复杂爬虫的笔记。如果有什么建议和想法欢迎交流。

    相关文章

      网友评论

      本文标题:Python爬虫笔记一 ——爬取网页题目

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