老孙的爬虫(一)———爬取某网址内下载链接

本文介绍了如何高效地爬取指定网址"https://ebooks.adelaide.edu.au/meta/collections"的下载链接。最初的方法是遍历HTML并逐级深入,但经过分析发现只需在首个页面拼接固定路径即可获取所有下载链接。通过简化爬虫代码,实现了对目标网站的高效爬取并存储到MongoDB。
摘要由CSDN通过智能技术生成

目标:爬取url为"https://ebooks.adelaide.edu.au/meta/collections"的网站目录下的所有文件下载链接(每个标题点开后的界面最下方的下载链接)

初始思路:首先爬取首个HTML下的内容,使用xpath过滤出接下来需要爬取的url并进行拼接,然后再次使用遍历爬取后存入MongoDB(这个思路是在没有彻底分析需要下载的数据时预想的,爬取过程繁琐,优化见下面)

import urllib.request
from lxml import etree
from bs4 import BeautifulSoup
from pymongo import MongoClient
import random
import hashlib
import time
url="https://ebooks.adelaide.edu.au/meta/collections"#爬取的url
result=urllib.request.urlopen(url)#获得的是一个对象

text=(result.read()).decode("utf-8")#转换为文本

# file=open("web.text","wb")#bs4可以直接解析本地文档
# file.write(result.read())
# file.close()

html=etree.HTML(text)
# result=etree.tostring(html)#自动补全html残缺标签(转换为字节)
# html_data=html.xpath('/html/body/div/div/div//div/ol/li/a/@href')#以列表形式返回,获取url数据
html_data=html.xpath('//ol//a/@href')#上面的简写为此

# def 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值