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

爬虫是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)

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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容