(二)爬取豆瓣网的书名(BeautifulSoup库)|Python网络爬虫与信息提取

1.爬取网页的步骤
2.爬取网页的代码1结果显示
3.爬取网页的代码2结果显示
4.代码分析
最近更新:2018-01-16

1.爬取网页的步骤

  • 步骤1:确认是否安装requests库,BeautifulSoup4库;
    安装方法参考:Windows系统的cmd,以requests为例,输入:pip install requests
  • 步骤2:打开豆瓣读书网页链接。
    https://www.douban.com/tag/%E5%B0%8F%E8%AF%B4/?focus=book
  • 步骤3:在网页右击鼠标右键,选择““查看源代码””,查看代码是否为html代码中,如是则可以用requests,BeautifulSoup4库可以提取相关的信息。如不是,则不可以。
  • 步骤4:查看该网站的Robots协议。(该网站无Robots)。
  • 步骤5:确认爬取资料的目的,撰写代码,并进行爬取数据。
    a)输入:豆瓣网小说的URL链接;
    b)输出:豆瓣网小说的名称;
    c)技术路线:requests-bs4;
    d)定向爬虫:仅对输入URL进行定向爬取,不扩展爬取。

2.爬取网页的代码1结果显示

2.1爬取网页的代码

#CrawUnivRankingB.py
import requests
from bs4 import BeautifulSoup
url="http://www.douban.com/tag/%E5%B0%8F%E8%AF%B4/?focus=book"
r=requests.get(url)
demo=r.text
soup=BeautifulSoup(demo,"html.parser")
book_div = soup.find(attrs={"id":"book"})
book_a = book_div.find_all(attrs={"class":"title"})
for book in book_a:
    print (book.string)

2.2 代码显示的结果

《(二)爬取豆瓣网的书名(BeautifulSoup库)|Python网络爬虫与信息提取》 书名.png

3.爬取网页的代码2结果显示

3.1爬取网页的代码

import requests
from bs4 import BeautifulSoup
import bs4
url="http://www.douban.com/tag/%E5%B0%8F%E8%AF%B4/?focus=book"
r=requests.get(url)
demo=r.text
soup=BeautifulSoup(demo,"html.parser")
for tr in soup.find(attrs={"id":"book"}).children:
    if isinstance(tr,bs4.element.Tag):
        tds=tr(attrs={"class":"title"})
        for book in tds:
            print (book.string)

3.2 代码显示的结果

《(二)爬取豆瓣网的书名(BeautifulSoup库)|Python网络爬虫与信息提取》 书名.png

4. 代码分析

4.1这里用BeautifulSoup解析,基本流程:

  • 缩小范围,这里我们通过id=”book”获取所有的书
  • 然后通过class=”title”,遍历所有的书名。

4.2分析页面源代码

《(二)爬取豆瓣网的书名(BeautifulSoup库)|Python网络爬虫与信息提取》 页面源代码.png

4.3代码1说明

  • book_div-通过id=book获取div标签
  • book_a-通过class=”title”获取所有的book_a标签
  • for循环-是遍历book_a所有的a标签
  • book.string-是输出a标签中的内容

4.4代码2说明

  • soup.find   通过id=book获取tr标签
  • tds    通过class=”title”获取所有的tds标签
  • for循环-是遍历tds所有的标签
  • book.string-是输出a标签中的内容
    原文作者:durian221783310
    原文地址: https://www.jianshu.com/p/a9ea089a14cf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞