网络爬虫: 从allitebooks.com抓取书籍信息: 抓取allitebooks.com书籍信息及ISBN码 from backslash112

from urllib2 import urlopen
from bs4 import BeautifulSoup

# Get the next page url from the current page url
def get_next_page_url(url):
    page = urlopen(url)
    soup_page = BeautifulSoup(page, ‘lxml‘)
    page.close()
    # Get current page and next page tag
    current_page_tag = soup_page.find(class_="current")
    next_page_tag = current_page_tag.find_next_sibling()
    # Check if the current page is the last one
    if next_page_tag is None:
        next_page_url = None
    else:
        next_page_url = next_page_tag[‘href‘]
    return next_page_url 

# Get the book detail urls by page url
def get_book_detail_urls(url):
    page = urlopen(url)
    soup = BeautifulSoup(page, ‘lxml‘)
    page.close()
    urls = []
    book_header_tags = soup.find_all(class_="entry-title")
    for book_header_tag in book_header_tags:
        urls.append(book_header_tag.a[‘href‘])
    return urls

# Get the book detail info by book detail url
def get_book_isbn(url):
    page = urlopen(url)
    book_isbn_soup = BeautifulSoup(page, ‘lxml‘)
    page.close()
    title_tag = book_isbn_soup.find(class_="single-title")
    title = title_tag.string
    isbn_key_tag = book_isbn_soup.find(text="ISBN-10:").parent
    isbn_tag = isbn_key_tag.find_next_sibling()
    isbn = isbn_tag.string.strip() # Remove the whitespace with the strip method
    return { ‘title‘: title, ‘ISBN‘: isbn }

def start():
    url = "http://www.allitebooks.com/certification/"
    book_info_list = []
    def next_page(page_url):
        book_detail_urls = get_book_detail_urls(page_url)
        for book_detail_url in book_detail_urls: #print all books ISBN one by one
            # print(book_detail_url)
            book_info = get_book_isbn(book_detail_url)
            print(book_info)   # print ISBD
            book_info_list.append(book_info)
        next_page_url = get_next_page_url(page_url)
        if next_page_url is not None:
            next_page(next_page_url)
        else:
            return 0
    next_page(url)
时间: 2024-10-13 13:57:18

网络爬虫: 从allitebooks.com抓取书籍信息: 抓取allitebooks.com书籍信息及ISBN码 from backslash112的相关文章

网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文

网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文 1.前言 最新在公司做一个项目,需要一些文章类的数据,当时就想到了用网络爬虫去一些技术性的网站爬一些,当然我经常去的就是博客园,于是就有下面的这篇文章. 2.准备工作 我需要把我从博客园爬取的数据,保存起来,最好的方式当然是保存到数据库中去了,好了我们先建一个数据库,在来一张表,保存我们的数据,其实都很简单的了啊,如下图所示 BlogArticleId博文自增ID,BlogTitle博文标题,BlogUrl博文地

python网络爬虫:实现百度热搜榜数据爬取

from bs4 import BeautifulSoup from selenium import webdriver import time import xlwt #打开网页 url="http://top.baidu.com/buzz?b=1&fr=topindex" driver = webdriver.Chrome() driver.get(url) #time.sleep(5) #获取网页信息 html=driver.page_source soup=Beauti

开源爬虫 ── 专业、强大的万维网资源定向抓取、爬抓工具

网络爬虫 又称网页蜘蛛.网络机器人.在 FOAF 社区常称网页追逐者.网络爬虫 是一种按照一定规则,自动抓取万维网信息的程序或脚本.另外一些不常使用名称还有蚂蚁.自动索引.模拟程序或蠕虫. 随着网络的迅速发展,万维网成为大量信息的载体,如何有效提取并利用这些信息成为一个巨大挑战.搜索引擎 (Search Engine),譬如:传统搜索引擎 AltaVista.Yahoo!.Google.百度.360 搜索.好搜.搜狗.Bing 等作为辅助人们检索信息的工具,已成为用户访问万维网的入口和指南.但是

Atitit.数据检索与网络爬虫与数据采集的原理概论

1. 信息检索1 1.1. <信息检索导论>((美)曼宁...)[简介_书评_在线阅读] - dangdang.html1 1.2. <现代信息检索(原书第2版)(由信息检索领域的代表人物撰写,及时掌握现代信息检索关键主题的详细知识)>((智)贝泽耶茨...)2 2. 网络爬虫2 2.1. 第8章 web爬取1993 2.2. <用Python写网络爬虫>([澳]理查德...)3 3. 数据采集4 3.1. <Python网络数据采集>(...)[简介_书评

【Pyhton】 网络爬虫初级

[本文原创于Paul的博客园技术博客.] [本文欢迎转载,转载请以链接形式注明出处.] [本博客所有文章都经博主精心整理,请尊重我的劳动成果.] [Pyhton]  网络爬虫初级 首先,我们来看一个Python抓取网页的库:urllib或urllib2. 那么urllib与urllib2有什么区别呢? 可以把urllib2当作urllib的扩增,比较明显的优势是urllib2.urlopen()可以接受Request对象作为参数,从而可以控制HTTP Request的header部. 做HTTP

C语言Linix服务器网络爬虫项目(一)项目初衷和网络爬虫概述

一.项目初衷和爬虫概述 1.项目初衷 本人的大学毕设就是linux上用c写的一个爬虫,现在我想把它完善起来,让他像一个企业级别的项目.为了重复发明轮子来学习轮子的原理,我们不使用第三方框架(这里是说的是指通常的linux系统编程教材以外的库和接口-0-,当初我也是在虚拟机上跑的ubuntu+putty+vim来开发)来实现. 然而我们造轮子不能闭门造车,苦心孤诣,而是要站在巨人的肩膀上,这样我们才能够更好更快地把握轮子的原理,进而造出更快更结实的轮子.下面是两位前辈的博客,本项目是在这两个博客来

一篇文章带你了解网络爬虫的概念及其工作原理

众所周知,随着计算机.互联网.物联网.云计算等网络技术的风起云涌,网络上的信息呈爆炸式增长.毋庸置疑,互联网上的信息几乎囊括了社会.文化.政治.经济.娱乐等所有话题.使用传统数据收集机制(如问卷调查法.访谈法)进行捕获和采集数据,往往会受经费和地域范围所限,而且还会因其样本容量小.信度低等因素导致收集的数据往往与客观事实有所偏颇,有着较大的局限性. 网络爬虫通过统一资源定位符URL (Uniform ResourceLocator)来查找目标网页,将用户所关注的数据内容直接返回给用户,并不需要用

Python3网络爬虫(八):爱奇艺等主流视频网站的VIP视频破解(在线观看+视频下载)

转载请注明作者和出处:http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 一.前言 没有会员,想在线观看或下载爱奇艺.PPTV.优酷.网易公开课.腾讯视频.搜狐视频.乐视.土豆.A站.B站等主流视频网站的VIP视频?又不想充会员怎么办?博主本次写的VIP视频破解助手也许可以帮你解决烦恼. 二.软件使用说明 1.软件下载 软件运行平台:Windows 注意:该软件已经打包成exe可

网络爬虫,如何做到 “盗亦有道” ?

网络爬虫的实质,其实是从网络上"偷"数据.通过网络爬虫,我们可以采集到所需要的资源,但是同样,使用不当也可能会引发一些比较严重的问题. 因此,在使用网络爬虫时,我们需要做到"盗亦有道". 网络爬虫主要分为以下三类: 1. 小规模,数据量小,爬取速度不敏感:对于这类网络爬虫我们可以使用Requests库来实现,主要用于爬取网页: 2. 中规模,数据规模较大,爬取速度敏感:对于这类网络爬虫我们可以使用Scrapy库来实现,主要用于爬取网站或系列网站: 3. 大规模,搜索