使用python爬取电子书_怎样用python3爬取电子书网站所有下载链接

本文介绍了如何使用Python3编写爬虫,从电子书下载网站抓取所有书籍的下载链接。通过分析网页结构,利用BeautifulSoup解析HTML,并通过多进程池提高效率,最终将数据保存到CSV文件。
摘要由CSDN通过智能技术生成

引言:今天周末,想找本电子书看看。发现了一个很好的电子书下载网站。为了以后找书方便,顺便练习一下python3写爬虫,于是就有了今天的小成果,python3爬取电子书网站所有链接。

第一步:网站分析

点击网站的尾页,看看总共有多少网页。如下图:

点击链接,进入任意子页面,要爬取下面的5个框框。

2.开始写代码

先获取每个父页面所有书名链接。

取得页面结构。

根据以上分析,先写代码,拼接出所有的父页面。

if __name__ == "__main__":

try:

pool = multiprocessing.Pool(processes=8)

for i in range(1, 219):

url = "http://www.ireadweek.com/index.php/index/" + str(i)+".html"#这里就是所有父页面

pool.apply_async(get_index_url, args=(url,))  # 维持执行的进程总数为processes,当一个进程执行完毕后会添加新的进程进去

pool.close()

pool.join()  # 调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束

except:

print(‘abort‘)

然后,获取某一父页面中所有书名链接:

wbdata = requests.get(url, headers=header).content

soup = BeautifulSoup(wbdata, ‘html.parser‘)

links = soup.select(‘html > body > div > div > ul > a‘) #这个是由上面copy selector得到的

然后,拼接子页面来获取子页面的网页内容:

book_page_url = "http://www.ireadweek.com"+page_url

wbdata2 = requests.get(book_page_url, headers=header).content.decode(‘utf-8‘)

soup2 = BeautifulSoup(wbdata2, ‘html.parser‘)

再,在子页面中获取上面的5个框框里面的信息,方法也是如上,书名上鼠标右键->审查元素,得到下图:

于是,得到这样的结构分支:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值