美文网首页数据蛙数据分析每周作业
爬虫实战:爬取国外慈善基金会数据

爬虫实战:爬取国外慈善基金会数据

作者: 王阿根 | 来源:发表于2018-12-24 14:33 被阅读14次

    数据地址

    基金会列表url:https://www.charitywatch.org/top-rated-charities

    第一家基金会url:https://www.charitywatch.org/ratings-and-metrics/naacp-legal-defense-and-educational-fund/18

    该篇文章是跟着视频教程边学边做的,所有代码都可以运行得通,只不过后面for循环的地方太慢了。

    爬虫准备

    HTML内容

    该网页的HTML信息都存储到了soup变量中,下面解释一下HTML里的一些内容:

    比如说,“<td><a href="ratings-and-metrics/national-urban-league-national-office/19">National Urban League(National Office)</a></td>

    1. 其中‘href’ 是标签‘a’ 的属性,参数‘href’ 给出的是与将要跳转的网页地址的相关信息,也就是该家基金会的详细信息网页,在“ratings-and-metrics/national-urban-league-national-office/19”前面加上https://www.charitywatch.org/”。

    2.<a ***>National Urban League(National Office)</a> 这个段落包含的是该基金会的名称,也是重要信息。

    爬虫思路

    1.先通过基金会列表页面,取一家基金会为样例,爬取其详细网页信息与该基金会名称

    2.根据获取的基金会详细信息网页地址,进入这个网页,抓取需要的具体expenses信息

    从基金会列表页面搜集详细信息页资料:

    我们看到,HTML对应的基金会列表代码,是在一个<div class="small-12 medium-8 column" id="results">的结构中,div是这个结构的标签,class, id是它的属性。

    那么该怎样定位呢?

    我们可以沿着层次树桩结构,比如head->body->div->.,也可以根据标签的一些特性,直接定位,比如div标签中的参数id内容是results,这一页只有一个id='results',的标签,那么参数id就可以直接定位了。

    beautifulsoup中 find_all既可以直接定位标签(find_all(div)),也可以搜索满足参数条件的内容来定位比如,id = 'results’,这里的id参数内容是results。

    或者采用下面这个方法取出所有的a标签:

    通过拼接,获取某一家基金会的链接地址

    爬取该基金会详情页的信息:

    找到我们要定位的信息位置:

    代码部分

    将基金会名车和花费做成dict赋值给results:数据一直在爬,这里只显示了7个

    将结果results保存成CSV格式:

    整个爬虫就完成了!

    相关文章

      网友评论

        本文标题:爬虫实战:爬取国外慈善基金会数据

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