视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python3基础爬虫简介
2020-11-27 14:13:28 责编:小采
文档


python3 基础爬虫入门心得

第一次写博客,有点紧张,不喜勿喷。
如果有不足之处,希望读者指出,本人一定改正。

学习爬虫之前你需要了解(个人建议,铁头娃可以无视):
- **少许网页制作知识,起码要明白什么标签...**
- **相关语言基础知识。比如用java做爬虫起码会用Java语言,用python做爬虫起码要会用python语言...**
- **一些网络相关知识。比如TCP/IP、cookie之类的知识,明白网页打开的原理。**
- **国家法律。知道哪些能爬,哪些不能爬,别瞎爬。**

如标题,本文中所有代码使用python3.6.X。

首先,你需要安装(pip3 install xxxx 一下就OK了)

  1. requests 模块

  2. BeautifulSoup 模块(或lxml 模块)

这两个库功能十分强大,requests用于发送网页请求和打开网页,beautifulsoup和lxml则用于解析内容,提取你想要的东西。BeautifulSoup偏向于正则表达式,lxml则偏向于XPath。因为本人用beautifulsoup库比较习惯,这篇文章主要应用beautifulsoup库,lxml不做过多赘诉。(用之前建议先看文档)

爬虫的主要结构:

  • 管理器:管理你要爬取的地址。

  • 下载器:把网页信息下载下来。

  • 筛选器:从下载到的网页信息中筛选出你所需要的内容。

  • 储存器:把下载到的东西存你想存的地方。(根据实际情况,可有可无。)

  • 在我所接触到的所有的网络爬虫基本都逃不出这个结构,大到sracpy小到urllib。这个结构知道就行,不用死记,知道它的好处就是在写的时候起码能知道自己在写什么,出BUG的时候知道在哪动手DEBUG。

    前面废话有点多….正文如下:

    本文以爬取https://baike.baidu.com/item/Python(python的百度词条为例):

    (因为截图太麻烦..这将是本文唯一一张图)

    想要爬取python的词条内容,首先,你要知道你所要爬取的网址:

    url = 'https://baike.baidu.com/item/Python'

    因为只需要爬这一页,管理器OK。

     html = request.urlopen(url)

    调用一下urlopen()函数,下载器OK

     Soup = BeautifulSoup(html,"html.parser")
     baike = Soup.find_all("p",class_='lemma-summary')

    利用Beautifulsoup库里的beautifulsoup函数合find_all函数,解析器OK
    在这里说一句,find_all函数的返回值是一个列表。所以输出时要循环打印。

    由于本例不需要保存,直接打印就行,所以:

    for content in baike: 
    print (content.get_text())

    get_text()的作用是提取出标签里的文本。

    把上面的代码整理一下:

    import requestsfrom bs4 import BeautifulSoupfrom urllib import requestimport reif __name__ == '__main__':
     url = 'https://baike.baidu.com/item/Python'
     html = request.urlopen(url)
     Soup = BeautifulSoup(html,"html.parser")
     baike = Soup.find_all("p",class_='lemma-summary') for content in baike: print (content.get_text())

    百度百科的词条就出来了。
    类似的方法也能爬一些小说、图片、头条之类的,绝不仅限于词条。
    如果关掉这篇文章你也能写出这个程序,那恭喜你,入门了。记住,千万别背代码。

    骤都省略了…整个程序有点粗糙…见谅啊….溜了溜了( ̄ー ̄)……

    下载本文
    显示全文
    专题