python爬虫资源大全_【Python】爬虫汇总

本文介绍了Python网络爬虫的主要流程,包括URL管理、网页下载和内容解析。通过实例展示了如何使用urllib和requests库下载网页,并利用HTMLParser处理解析后的数据。同时,解释了URL的组成部分及其作用,以及爬虫如何避免重复抓取URL。
摘要由CSDN通过智能技术生成

主要流程:

获取url

下载网页

从网页中找寻自己需要的保存(解析+输出)

主要概念

URL:分大小写

统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

基本URL包含模式/协议、服务器名称/IP地址、路径和文件名

模式/协议(scheme):它告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,缩写为HTTP)

文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号。它也可以包含接触服务器必须的用户名称和密码。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。 [2]

注释:有时候,URL以斜杠“/”结尾,而没有给出文件名,在这种情况下,URL引用路径中最后一个目录中的默认文件(通常对应于主页),这个文件常常被称为 index.html 或 default.htm。

URL管理器:

包括:管理待抓取URL集合&已抓取URL集合

作用:

1、添加新URL到带爬取集合中(判断是否重复抓取)

2、从管理器集合中获取带爬取URL(判断是否取完),放入已爬取集合(帮助判断是否重复)

实现方式

网页下载器:

Python包括urllib,requests等库下载网页

主要工具模板:

urllib

requests

注:urllib2改为urllib.request

案例:

图虫爬取 Github

主要Main:

if __name__ == '__main__':

root_url = "https://baike.baidu.com/item/%E7%99%BE%E5%BA%A6%E7%99%BE%E7%A7%91/85895?fr=aladdin"

obj_spider = SpiderMain()

obj_spider.craw(root_url)

主类:

class SpiderMain(object):

def __init__(self, ):

self.urls = url.UrlManager()

self.downloader = downloader.HtmlDownloader()

self.parser = parser.HtmlParser()

self.outputer = outputer.HtmlOutputer()

def craw(self, root_url): # 调度程序

count = 1

self.urls.add_new_url(root_url) # 只使用一次,获取根url

while self.urls.has_new_url(): # 判别是否有新的url

try:

new_url = self.urls.get_new_url() # 获取待爬取的新url

print('craw %d : %s' % (count, new_url))

html_cont = self.downloader.download(new_url) # 下载

new_urls, new_data = self.parser.parse(new_url, html_cont) # 解析

self.urls.add_new_urls(new_urls) # 新增界面一堆urls

self.outputer.collect_data(new_data) # 收集价值数据

count += 1

if count == 100:

break

except:

print('craw failed')

self.outputer.output_html()

---------------------

作者:YZXnuaa

来源:CSDN

原文:https://blog.csdn.net/YZXnuaa/article/details/91005849

版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值