黑洞HTTP

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

代理ip协助爬虫爬取豆瓣图书榜单信息

发布时间:2019年04月03日 来源:互联网

今天黑洞HTTP为大家分享一下爬虫是如何爬取豆瓣图书榜单信息的,我们首先打开豆瓣图书top250的网页,通过源代码检查元素,检索我们所需要的字段所在的标签。主要抓取的内容是书名、别名、信息、评分、人数、描述。


代理ip协助爬虫爬取豆瓣图书榜单信息


代码如下:


#!/usr/bin/env python


# encoding: utf-8


import re


import requests


from bs4 import BeautifulSoup


def book(target_url):


    books = []


    book = requests.get(target_url) #使用requests返回网页的整体结构


    soup = BeautifulSoup(book.text, 'lxml') # 使用lxml作为解析器,返回一个Beautifulsoup对象


    table = soup.findAll('table', {"width": "100%"}) #找到其中所有width=100%的table标签),即找到所有的书


    for item in table: #遍历table,一个item代表一本书


        name = item.div.a.text.strip() #找到书名


        r_name = name.replace('\n', '').replace(' ', '') #通过看网页的HTML结构,可以发现书名后是有换行以及空格的,将这些全部通过replace替换去除


        tmp2 = item.div.span  #判断是否存在别名


        if tmp2:


            name2 = tmp2.text.strip().replace(':', '') #因为是通过div.span判断别名 有些书的别名前面有个冒号,比如《追风筝的人》


        else:


            name2 = r_name #无别名就使用原始的名称


        url = item.div.a['href'] #获取书的链接


        info = item.find('p', {"class": "pl"}).text #获取书的信息


        score = item.find('span', {"class": "rating_nums"}).text.strip() #获取分数


        nums = item.find('span', {"class": "pl"}).text.strip() # 获取评价人数


        num = re.findall('(\d+)人评价', nums)[0]  # 通过正则取具体的数字


        if item.find('span', {"class": "inq"}): # 判断是否存在描述


            desc = item.find('span', {"class": "inq"}).text.strip()


        else:


            desc = 'no description'


        books.append((r_name, name2, url, info, score, num, desc)) #以元组存入列表


    return books #返回一页的书籍



for n in range(10):


    url1 = 'https://book.douban.com/top250?start=' + str(n*25) #top250的网页,每页25本书,共10页,“start=”后面从0开始,以25递增


    tmp = book(url1)


    with open('booktop250.xls', 'a', encoding='utf-8') as d: #新建一个文件存放数据,模式取'a',表示在后面追加;编码一定要写上,因为win下新建文件,默认是gbk编码,但是前面返回的结构是unicode的,会报编码错误


        for i in tmp:


            print(i[0]+"\t"+i[1]+"\t"+i[2]+"\t"+i[3]+"\t"+i[4]+"\t"+i[5]+"\t"+i[6], file=d)


以上就是关于爬虫如何爬取豆瓣图书榜单信息的相关介绍了,黑洞HTTP可为您提供海量IP资源,助您不间断获取行业数据,赢在大数据时代!


相关文章内容简介

1 代理ip协助爬虫爬取豆瓣图书榜单信息

今天黑洞HTTP为大家分享一下爬虫是如何爬取豆瓣图书榜单信息的,我们首先打开豆瓣图书top250的网页,通过源代码检查元素,检索我们所需要的字段所在的标签。主要抓取的内容是书名、别名、信息、评分、人数、描述。代码如下:#!/usr/bin/env python# encoding: utf-8import reimport requestsfrom bs4 import BeautifulSoupdef book(target_url):    books = []    book = requests.get(target_url) #使用requests返回网页的整体结构    soup = BeautifulSoup(book.text, 'lxml') # 使用lxml作为解析器,返回一个Beautiful [阅读全文]

热门标签

最新标签

推荐阅读

  1. 21

    2019-09

    代理服务器ip可以用来做什么

    代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理

  2. 15

    2019-08

    什么是代理ip服务器,类型,代理列表

    在浏览网页时,你们中的许多人一定会遇到一个奇怪的“代理”字样。您可能会在弹出式广告中看到它,或者在工作时听到系统管理员的回复。也许你现在甚至使用它但却没有意识到这一点。什

  3. 03

    2019-06

    IP代理服务器软件让爬虫效率更高

    别看网络爬虫现在这么火,其实做网络爬虫一点都不容易,辛辛苦苦写了个代码,爬着爬着就突然爬不动了,明明小心翼翼的绕过了反爬机制,可怎么又被另一个反爬机制给抓住了,正所谓明枪

  4. 08

    2019-07

    免费高速http代理ip安全可用吗?

    HTTP代理IP是最普遍的一种代理形式,能够代理客户机的HTTP访问,例如我们平时上网浏览页面使用的都是HTTP协议。如果你的业务是在浏览器操作,那么HTTP代理IP在适合不过。

  5. 28

    2019-03

    如何通过Python使用代理IP增加博客园阅读量

    最近有博客园的小白吐苦水,说发了好几天的博客文章阅读量还是个位数,被被人转载了阅读量快要破百了,而且转载还不注明出处,感觉心理不平衡,自己辛辛苦苦写的文章没成果,别人抄袭

  6. 21

    2019-05

    爬虫大数据代理IP使用黑洞HTTP更可靠

    目前爬虫大和大数据采集、分析等领域,在很多时候都需要用到代理IP,以此达到切换IP的目的。切换IP有很多方法,不过目前越来越多的企业级用户选择使用黑洞HTTP,这是为什么呢?