首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web Scraping with Python

Web Scraping with Python

作者头像
带萝卜
发布2020-10-23 14:52:48
3080
发布2020-10-23 14:52:48
举报

最近在看这本书,因为同时有学英语的需求,就顺手翻译一下吧:

首先声明,这本书是关于Python3.X的,而且主要讲BeautifulSoup

第三章,开始爬取

之前书中提到的例子应付静态单网页的数据(就像我们之前制作的专门用来给大家练习的那个网页)爬取已经绰绰有余了。在这一章中,我们要开始尝试爬取多页面甚至是多站点的真实网页了。

爬虫之所以叫爬虫是因为它能在跨越网页爬取数据,它们的核心是一些循环的单元,这些单元要从一个网址(URL)中下载页面,然后从这个网页中寻找另一个网址,然后继续下载网页,如此循环往复。

注意了,虽然你能爬取整个网络,但是肯定不是每次都需要这么大工作量的。之前书本上举的例子在静态单网页上能运行得很好,所以你在编写爬虫的时候一定要仔细考虑清楚,怎样能让你的爬虫工作效率更高。

(逐字翻译好累啊,后面就翻翻大意吧^ 。^)

1.首先介绍如何在一个网域中爬取数据:

书中举了一个“Six Degrees of Wikipedia"和"Six Degrees of Kevin Bacon"的游戏的例子,看语气这东西好像很出名的样子,不知道是什么梗,有谁知道跟我讲讲。大致意思就是WIKI百科中的任意两个词条能通过六条以内的词联系起来。

之后书上举了个例子,恕我孤陋寡闻,完全不知道那些人名是谁。

多说无益,直接上代码吧,玩这个游戏首先需要学会找网页中的链接:

from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("https://en.wikipedia.org/wiki/Kevin_Bacon") bsObj = BeautifulSoup(html) for link in bsObj.findAll("a"): if 'href' in link.attrs: print(link.attrs['href'])

之所以findAll参数为”a“,是因为点击网页查看源代码之后,可以看到词条的链接都包含在这样的结构里面(我猜应该是这样的吧)

然而BeautifulSoup中link.attrs是词典类型的,可以通过link.attrs['href']来调用href也就是链接地址的值。

今天就这么多了吧,一写就发现原来我没看懂啊。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档