【python数据抓取技术与实战】爬虫基础

requests.exceptions.MissingSchema: Invalid URL ‘h‘: No schema supplied. Perhaps you meant http://h? 【报错】 写web接口时报错: requests.exceptions.MissingSchema: Invalid URL 'h': No schema supplied. Perhaps you meant http://h? 【原因】:post传入的参数不对,可能应该传入列表(list参数),但实际传入的是字符串。 【解析】: 可能server.py中用了类似以下的循环: ... 阅读详情

第一个爬虫应用

该代码主要爬取电子工业出版社http://www.phei.com.cn首页的内容。

#引入requests模块
import requests

#定义get_content函数
def get_content(url):
    resp = requests.get(url)
    return resp.text

#"__name__ == '__main__'"的作用是被别的文件import时候,以下代码不会主动地执行
if __name__ == '__main__':    
    #定义url,值为要抓取的目标网站网址
    url="http://www.phei.com.cn"

    #调用函数返回赋值给content
    content = get_content(url)

    #打印输出content的前50个字符
    print("前50个字符为:",content[0:50])

    #打印输出content的长度
    content_len = len(content)
    print("内容长度为:",content_len)

    #判断内容长度是否大于40KB
    if content_len >=40 * 1024:
        print("内容的长度大于等于40KB")
    else:
        print("内容的长度小于40KB")

以下是输出内容:

前50个字符为: <html>
<head>
<meta http-equiv="Content-Type" cont
内容长度为: 102494
内容的长度大于等于40KB

字典推导表达式

urls_d = {i: "www.xyz.com/?page={}".format(i) for i in range(1,11)}

以下是输出内容:

{1: 'www.xyz.com/?page=1', 2: 'www.xyz.com/?page=2', 3: 'www.xyz.com/?page=3', 4: 'www.xyz.com/?page=4', 5: 'www.xyz.com/?page=5', 6: 'www.xyz.com/?page=6', 7: 'www.xyz.com/?page=7', 8: 'www.xyz.com/?page=8', 9: 'www.xyz.com/?page=9', 10: 'www.xyz.com/?page=10'}

第二个爬虫应用

将字典、列表、元组、集合、循环、异常、文件操作融合在一起

import requests

urls_dict={
    '电子工业出版社':'http://www.phei.com.cn',
    '在线资源':'http://www.phei.com.cn/module/zygl/zxzyindex.jsp',
    'xyz':'www.phei.com.cn',
    '网上书店1':'http://www.phei.com.cn/module/goods/wssd_index.jsp',
    '网上书店2':'http://www.phei.com.cn/module/goods/wssd_index.jsp'
}

urls_lst=[
    ('电子工业出版社','http://www.phei.com.cn'),
    ('在线资源','http://www.phei.com.cn/module/zygl/zxzyindex.jsp'),
    ('xyz','www.phei.com.cn'),
    ('网上书店1','http://www.phei.com.cn/module/goods/wssd_index.jsp'),
    ('网上书店2','http://www.phei.com.cn/module/goods/wssd_index.jsp')
]

#利用字典抓取
crawled_urls_for_dict=set()
for ind,name in enumerate(urls_dict.keys()):
    name_url = urls_dict[name]
    if name_url in crawled_urls_for_dict:
        print(ind,name,'已经抓取过了')
    else:
        try:
            resp = requests.get(name_url)
        except Exception as e:
            print(ind,name,':',str(e)[0:50])
            continue
        content=resp.text
        crawled_urls_for_dict.add(name_url)
        with open('bydict_'+name+'.html','w') as f:
            f.write(content)
            print('抓取完成:{} {},内容长度为{}'.format(ind,name,len(content)))

for u in crawled_urls_for_dict:
    print(u)

print('-' * 60)

#利用列表抓取
crawled_urls_for_list=set()
for ind,tup in enumerate(urls_lst):
    name=tup[0]
    name_url = tup[1]
    if name_url in crawled_urls_for_list:
        print(ind,name,'已经抓取过了')
    else:
        try:
            resp = requests.get(name_url)
        except Exception as e:
            print(ind,name,':',str(e)[0:50])
            continue
        content=resp.text
        crawled_urls_for_list.add(name_url)
        with open('bydict_'+name+'.html','w') as f:
            f.write(content)
            print('抓取完成:{} {},内容长度为{}'.format(ind,name,len(content)))

for u in crawled_urls_for_list:
    print(u)

以下是输出内容:

抓取完成:0 在线资源,内容长度为49279
抓取完成:1 网上书店2,内容长度为130100
抓取完成:2 电子工业出版社,内容长度为102494
3 网上书店1 已经抓取过了
4 xyz : Invalid URL 'www.phei.com.cn': No schema supplied.
http://www.phei.com.cn/module/zygl/zxzyindex.jsp
http://www.phei.com.cn/module/goods/wssd_index.jsp
http://www.phei.com.cn
Python网络爬虫:歌曲数据抓取实践 项目完成后,应该进行总结,分析哪些地方做得好,哪些需要改进,为以后的项目提供经验教训。 阅读详情

相关推荐

Python网络爬虫实战:爬取新闻网站新闻

正则表达式(Regular Expression)是一串由字符和特殊符号构成的字符串,它描述了一种字符串匹配的模式,用来检索、替换那些符合某个模式(规则)的文本。在Python中,正则表达式可以使用re模块进行处理。下面是一个简单的例子,展示了如何使用re模块来匹配特定模式的字符串:import re# 待搜索的字符串text = "今天天气不错,明天也不错。# 正则表达式,匹配“天”字后的字符pattern = r"天(后|上|下)"

weixin_28746457的博客 3111

解决requests.exceptions.MissingSchema Invalid URL ‘xxx‘ No schema supplied. Perhaps you meant“xxx”

在使用requests请求接口的时候有时候会爆出个这样的问题,问题的大概意思是无效的url,也就是说这个url是没有效果是错误的,这就就要检查一下url是否符合规定,是否少加了协议 import requests a=requests.get(url="www.baidu.com") #缺少协议,这样请求会报错 print(a.json()) b=requests.get(url="http://www.baidu.com") #加入协议后就能正确访问 print(b.json()) ...

m0_67401851的博客 6778

Python网络爬虫从入门到精通

网络爬虫,又称网络蜘蛛或网络机器人,是一种自动化浏览网络的程序。它按照一定的规则,自动抓取互联网信息,并将其存储起来。网络爬虫广泛应用于搜索引擎索引、数据采集、网站监控等领域,是互联网数据分析不可或缺的工具。Scrapy是一个用于快速爬取网站数据、提取结构性数据的应用框架,它可以在Python环境下运行。Scrapy主要用于从网页中抓取数据,并将数据存储为结构化的格式,如JSON、CSV等。其内部架构设计合理,拥有良好的扩展性,这使得Scrapy在数据采集领域非常受欢迎。

weixin_28913879的博客 1552

【吐血整理】Python爬虫实战!从入门到放弃,手把手教你数据抓取秘籍

网络爬虫,又称为网页蜘蛛或爬虫,是一种用来自动浏览万维网的程序。它按照一定的算法顺序抓取网页内容,同时将抓取到的数据存储起来,用于进一步的分析和处理。定义:网络爬虫是一个自动提取网页的程序,它从互联网上采集网页并提取其中的信息。重要性:网络爬虫在信息获取、数据挖掘、搜索引擎构建等方面发挥着关键作用。它帮助我们从海量的网络信息中提取有价值的数据,为大数据分析、市场研究、学术研究等提供原始材料。

eclipsercp的博客 6122

Python数据抓取技术与实战.pdf

Python数据抓取技术与实战.pdf Python数据抓取技术与实战.pdf Python数据抓取技术与实战.pdf

Python数据抓取技术与实战.zip

Python数据抓取技术与实战

『Python开发实战菜鸟教程』实战篇:爬虫快速入门——统计分析优快云与博客园博客阅读数据

0x01:引子 这是一个网络爬虫快速入门实战教程,笔者希望读者能跟着这个博客进行实操,从而掌握网络爬虫的原理与基本操作。部分内容参考自:http://c.biancheng.net/view/2011.html 这个博客以下内容: 了解网络爬虫; 了解网页; 使用 requests 库抓取网站数据; 使用 Beautiful Soup 解析网页; 手把手实战操作统计分析优快云与博客园博客阅读数据 首先介绍一下网络爬虫是什么,可以用来做什么? 百度百科对网络爬虫介...

简明AI工作室 8227

Python数据挖掘入门与实战

使用简单易学且拥有丰富第三方库和良好社区氛围的Python语言,由浅入深,以真实数据作为研究对象,真刀实枪地向读者介绍Python数据挖掘的实现方法,欢迎下载!

Python 爬虫入门实战之猫眼电影数据抓取

如果你对 Python 感兴趣,那么爬虫可能是 Python 学习之路的不二之选,你可以爬取豆瓣影评分析电影舆情,也可以爬取网易云音乐歌单构建推荐系统,爬取京东商品评论进行情感分析,甚至当你想找工作时可以爬取相关招聘信息为自己提供数据支持。 本次 Chat 就带你快速入门爬虫及进阶,通过学习本次 Chat 分享的内容,可以让你从零开始快速学会编写静态到动态的各类 Python 网络爬虫,并且涉及多...

GitChat 1485

Python网络爬虫项目开发实战_数据抓取_编程案例解析实例详解课程教程.pdf

一个爬虫,可以通过跟踪链接的方式下载我们所需的网页。虽然这个例子很有意思,却不够实用,因为爬虫在下载网页之后又将结果丢弃掉了。现在,我们需要让这个爬虫从每个网页中抽取一些数据,然后实现某些事情,这种做法也被称为抓取(scraping)。首先,我们会介绍一个叫做Firebug Lite的浏览器扩展,用于检查网页内容,如果你有一些网络开发背景的话,可能己经对该扩展十分熟悉了。然后,我们会介绍三种抽取网页数据的方法,分别是正则表达式、Beautiful Soup和lxml。最后,我们将对比这三种数据抓取方法。

Windows下MMdetection3D保姆级安装指南(含CUDA和PyTorch版本避坑)

本文提供Windows平台下MMdetection3D的完整安装指南,重点解决CUDA与PyTorch版本匹配问题。从环境准备到关键组件安装,详细介绍了CUDA Toolkit选择策略、PyTorch精准安装步骤,以及MM系列组件的安装顺序和常见错误解决方案,帮助用户顺利完成3D目标检测环境的配置。

weixin_42628941的博客 492

实战python网络爬虫-清华大学出版社-图书详情-《实战Python网络爬虫》

前 言随着大数据和人工智能的普及,Python的地位也变得水涨船高,许多技术人员投身于Python开发,其中网络爬虫是Python最为热门的应用领域之一。在爬虫领域,Python可以说是处于霸主地位,Python能解决爬虫开发过程中所遇到的难题,开发速度快且支持异步编程,大大缩短了开发周期。此外,从事数据分析的工程师,为获取数据,很多时候也会用到网络爬虫的相关技术,因此,Python爬虫编程...

weixin_39531582的博客 558

Dify工作流构建案例:迭代驱动的多维深度搜索

为了克服这些挑战,我们可以设计一个能够智能协同内部知识库与外部互联网搜索,并最终由大型语言模型(LLM)进行深度整合与精准回答的高级工作流。

同名公众号:dify实验室 2292

做Python网络爬虫需要掌握哪些核心技术?

为了让具备Python基础的人群适合岗位的需求,给大家分享一门全面的、系统的、简易的Python网络爬虫入门级学习教程,不仅讲解了学习网络爬虫必备的基础知识,而且加入了爬虫框架的内容,大家学完之后,能够全面地掌握抓取网页和解析网页的多种技术,还能够掌握一些爬虫的扩展知识,如并发下载、识别图像文字、抓取动态内容等。并且大家学完还能熟练地掌握爬虫框架的使用,如Scrapy,以此创建自己的网络爬虫项目,胜任Python网络爬虫工程师相关岗位的工作。

weixin_67991858的博客 1009

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 442

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3113

python3.6网络爬虫_python3.6网络爬虫

《精通Python网络爬虫:核心技术、框架与项目实战》——导读前  言为什么写这本书网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中。在搜索引擎中,主要使用通用网络爬虫对网页进行爬取及存储。随着大数据时代的到来,我们经常需要在海量数据的互联网环境中搜集一些特定的数据并对其进行分析,我们可以使用网络爬虫对这些特定的数据进行爬取,并对一些无...文章华章计算机2017-05-02380...

weixin_39897015的博客 949

STM32----SPI+DMA高效读写外部Flash的配置与实战

本文详细介绍了STM32通过SPI+DMA高效读写外部Flash的配置与实战方法。针对大量数据传输场景,使用DMA技术可显著提升系统效率,释放CPU资源。文章包含完整的代码实现、常见问题调试技巧以及性能优化建议,帮助开发者快速掌握这一关键技术。

pea55的博客 1031

Python3网络爬虫案例实战课程 - 网络数据抓取的艺术

Python3网络爬虫案例实战课程 - 网络数据抓取的艺术 【下载地址】Python3网络爬虫案例实战课程-视频文档源码 这是一门全面的Python3网络爬虫实战课程,涵盖从基础到高级的完整学习路径。课程内容包括环境配置、爬虫基础、实战案例、框架使用以及分布式爬虫技术。通过详细的视频教程、文档和源码,您将学习如何使用Ur...

gitblog_06765的博客 293

SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码)

本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。

weixin_29074295的博客 294

vivado 工程修改芯片型号

vivado工程芯片与实际板子不匹配时,需要修改工程的芯片型号,并对原工程的ip进行同步更新,之后生成新的bit文件,烧录到板子中

k7126685的博客 1万+

python爬虫教程-有什么好的python3爬虫入门教程或书籍吗?

Python Web Scraping Cookbook - 2018.pdfhttps://china-testing.github.io/scrap_books.html​china-testing.github.ioPublished: 二 06 十一月 2018 By andrew In ...

q6q6q的专栏 2288

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7498
上一篇: 爬虫实战(二)猫眼电影动态数据爬取
下一篇: MongoDB的安装教程
yeverwen
博客等级 码龄14年 116粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值