【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。最后,我们将对比这三种数据抓取方法。

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解)

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解) 本文不包括启动盘制作步骤,相关内容可自行百度 华为服务器 1 插入u盘,关机重启 2 初始化界面后进入到系统的BIOS设置界面 (华为服务器按Del键,不同品牌方法不同) 3 进入的时候,华为的服务器默认设置了BIOS密码,因此需要输入之前预设的密码。 注意密码大小写问题,若密码输错三次,则需重启 4 密码输入以后,进入...

crystalbang的博客 2万+

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

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

weixin_39531582的博客 558

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

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

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

weixin_67991858的博客 1009

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

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

m0_62870606的博客 3113

MySQL操作之用户管理权限管理:(DC)(五)

一、简介 二、用户管理 2.1 User表 2.2 创建普通用户 2.3 删除普通用户 2.4 修改用户密码 2.5 解决root用户密码丢失 三、权限管理 3.1 MySQL的权限 3.2 授予权限 3.3 查看权限 3.4 收回权限

lydms的博客 4507

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

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

weixin_39897015的博客 949

基于CST的PCB通孔三维建模实例

本文简明扼要地描述了如何利用CST的参数化脚本快速生成PCB的通孔三维模型,非常适合于进行快速精准的PCB参数分析。

一只豌豆象的博客 1835

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

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

gitblog_06765的博客 293

基于Simulink实现电动汽车电机驱动系统的建模与仿真

通过上述步骤,我们成功实现了基于Simulink的电动汽车电机驱动系统的建模与仿真。该系统能够全面评估电机驱动系统的性能,验证控制策略的有效性,并通过优化设计提高车辆的动力性和效率。引入智能预测:结合人工智能技术,实现更智能的控制策略。扩展功能:增加对多种电机类型的支持,提升系统通用性。实验验证:将仿真模型应用于实际硬件,进行实验验证,评估其在实际工况下的表现。

xiaoheshang_123的博客 317

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法

Robot_PLC_HMI_Automation 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

RK3568 OpenHarmony3.2 NFC 驱动适配(PN7150)II

承接上文《RK3568 OpenHarmony3.2 NFC 驱动适配(PN7150)I》,继续PN7150 NFC模块的整体适配。本文主要介绍包括HDI实现层、框架层以及设备适配层的代码修改思路。具体包括vendor_adaptor、hdi_service等;以及foundation下的frameworks、services等。此外还包括相关三方库libnfc-nci在鸿蒙平台的移植和适配。需要注意的是,当前nfc适配只是基于作者手上的RK3568平台以及相关OpenHarmony3.2的代码。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值