Python 网络爬虫(错误之处,敬请斧正)

工业互联网工控安全与工业质检AI大模型建设方案.pptx 立即下载

很久没有用python了,心血来潮写一下自己对于学习python获取网络数据的总结。

工具

python版本: 3.5 
IDE : pycharm 5.0.4 

要用到的包可以用pycharm下载:
File->Default Settings->Default Project->Project Interpreter
选择python版本并点右边的加号安装想要的包

这里写图片描述

这里以爬取图片为例:

获取目的网站的信息:

#coding=utf-8    //中文编码
import urllib2    
url = "http://tieba.baidu.com/p/2738151262"

def getHtml():
    request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    html = response.read()
    return html

urllib2 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

  urllib2.urlopen()方法用于打开一个URL地址。

  read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。返回结果。

利用正则表达式对爬取的网页进行筛选

正则表达式的知识

审查图片元素,观察我们要获取的图片对应的网页代码是什么样的!!!
这里写图片描述

添加代码

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    return imglist      
  • re.compile() 可以把正则表达式编译成一个正则表达式对象.

  • re.findall() 方法读取html 中包含 imgre(正则表达式)的数据。

  • 运行脚本将得到整个页面中包含图片的URL地址。

将页面筛选的数据保存到本地

使用for循环

修改代码如下:

#coding=utf-8
import urllib2    
url = "http://tieba.baidu.com/p/2738151262"

def getHtml():
    request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    html = response.read()
    return html

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    x = 0
    for imgurl in imglist:
        urllib.urlretrieve(imgurl,'%s.jpg' % x)
        x+=1

if __name__ == "__main__":
    html = getHtml()
    getImg(html)

或者

//注意aw与w的区别
with open('out.txt','aw') as file:
            file.write('%s\n' % imgurl)
 //图片对应的url
2024 《计算机网络》实验教学指导书.doc 立即下载

相关推荐

不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。

python with open()方法以及os模块的一些常用操作

with open()方法以及os模块的一些常用操作

Logic_luo的博客 2503

松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器

weixin_48924581的博客 1万+

文件读写

读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 1.读...

Alie1129的博客 1217

数字IC后端设计实现OCC(On-chip Clock Controller)电路介绍及时钟树综合案例

数字IC后端设计实现OCC(On-chip Clock Controller)电路介绍及时钟树综合案例

weixin_37584728的博客 4733

低功耗设计-ir drop的signoff corner怎么选择?

2.tt的(tt85 是比较接近芯片真实工作情况的);我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?有要求就用要求的就好,没要求前两种看公司需求。3.signoff文档要求的;有几个方向,看公司需求吧。

m0_61544122的博客 1587

Python学习之with open as

  Python的with语句是提供一个有效的机制,让代码更简练;自动帮你关闭文件;同时在异常产生时,清理工作更简单。                                             ¥原文出处,感谢dsw846¥ 转载于:https://www.cnblogs.com/RescueWang/p/7808503.html...

weixin_30566149的博客 105

ML307R OpenCPU TCP使用

实现现象 平台下发数据,板子在收到数据之后,马上再发送到平台,通过串口助手可以看到已经接收到数据。ML307R TCP 是使用LWIP的标准的socket通信,具体TCP流程可以自行百度。实验目的:实现把接收的数据再发送到服务端。因为是4G,所以必须用外网的。

面朝大海春暖花开 2232

python with open使用方法(基础)

with with就是一个相当于自动关闭你所打开的文件而已吧。 其他的我也不知道 open() open()函数需要传递至少两个参数 路径 读写方式 路径 其中路径又有相对路径和绝对路径 绝对路径就是从D:/开始的路径 相对路径就是直接写路径就可以,不用从D盘开始写。在程序所在路径下! 读写方式 非二进制读写 r(只读) r+(读写) w(只写 从头开始写) w+(读写 从头开始) a(追加写) a+(追加读写) 二进制读写 rb(只读) rb+(读写) wb(只写) wb

qq_57325259的博客 1万+

用 MVC 框架把 ABAP 报表写成可扩展的应用(2)

本文介绍了一个基于MVC架构的SAP报表模板,解决了传统ABAP报表开发中的三个核心痛点: 选择屏幕校验逻辑分散问题 - 通过统一的选择屏幕控制器集中管理校验逻辑 在线与后台输出不一致问题 - 共享同一数据模型,通过不同控制器实现多样化展示 屏幕流转管理混乱问题 - 主控制器统一管理所有屏幕流程和事件 该模板采用分层架构: Model层专注数据获取和业务规则 Controller层管理流程和交互 View层负责展示逻辑 特别适用于需要同时支持交互式ALV展示和后台批处理输出的报表场景,通过标准化的扩展点设计

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 78

YOLOv5/v7/v8首发革新改进——轻巧、创新的LADH检测头

本文介绍了一种原创改进的轻量化非对称多级压缩LADH检测头,该检测头能够实现即插即用,并在YOLOv5/v7/v8检测器中取得了显著的性能提升。本文将介绍一种原创改进的轻量级非对称多级压缩LADH(Lightweight Asymmetric Dual-Head)检测头,该检测头能够实现即插即用,并显著提升YOLO检测器的性能。因此,我们提出了一种非对称多级压缩的方法,即对不同类别的检测头采用不同的压缩比例。然而,为了进一步提高YOLO的性能,我们进行了一项原创改进,设计了一种轻巧且创新的LADH检测头。

IpyVariable的博客 2725

python中with open的用法

在 Python 中,使用 with open 可以打开文件并进行读写操作。例如: with open('filename.txt', 'r') as f: data = f.read() 在这个例子中,with open 打开了文件 filename.txt,并将其赋值给变量 f。然后,使用 f.read() 读取文件中的内容,并将其存储在变量 data 中。 with open 有几...

weixin_35755823的博客 1282

【软件测试】人工智能(AI)在软件测试领域的应用

AI在软件测试领域的应用使测试过程更加自动化、高效和智能。它可以帮助测试团队减轻负担,更快地识别和修复问题,最终提高软件的质量和可靠性。随着AI技术的不断进步,未来AI在软件测试领域的应用将更加广泛和深入。

weixin_46453070的博客 4383

Python中的with open的使用方法

with open (file = "你要打开的路径名(或保存内容的地址)",mode = "r/w/a",encoding = "utf-8") as f1: data = f1.read #f1这个文件进行只读操作,并将结果交给data print(data) 作者:爱吃泡芙的小杨同学 链接:https://www.jianshu.com/p/ce2d30f7ec26 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 r:只读 用

weixin_47249161的博客 3万+

泛微OA集成阿里云短信(E9保姆教程)

泛微OA集成阿里云短信(E9保姆教程)

技术分享 515

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

六种打开文件方式with open【python】

#打开文本类文件,必要时加上编码类型 with open('QQname.html', 'r', encoding='utf-8')as fp: r = fp.read() print(r) #覆盖|创建文本类文件 with open('QQname.html', 'w', encoding='utf-8')as fp: fp.write('内容') #追加|创建文本类文件 with open('QQname.html', 'a', encoding='utf-8')as f

cold的博客 2006

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python 文件读写with open模式r,r+ w,w+ a,a+区别详解

python 文件读写with open模式r,r+ w,w+ a,a+区别详解 python中的 with open主要要来进行文件读写的操作 在 Python 中使用文件的关键函数是 open() 函数。 打开/创建文件使用open(file,mode)函数,open() 函数有两个主要参数:文件名和模式,该函数的参数定义如下: file:文件名,可以是包含路径的文件名 mode:文件打开模式 r:只读模式,文件不存在泽报错,默认模式(文件指针位于文件末尾) r+:只读模式,文件不存在泽报错(文件指针位

weixin_48681975的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python 文件读写with open模式r,r+,w,w+,a,a+的区别(附代码示例)

这个初学,确实不太还了解,网上有很多资料,写的很详细: 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+  可读可写 创建 是 a   只能写 创建 否,追加写 a+ 可读可写 创建 否,追加写 例子: def file_operation(): with open('/wzd/tes...

weixin_34279246的博客 2万+

Python读写文件之with open()

with open()

我是一只小嵩鼠 2万+

解决IDEA中 ,快捷键Alt+Enter不能使用。

Alt+Enter快捷键是Idea中比较特殊的一个快捷键。 它有很多功能,比如:导入包,自动修正代码 解决出现的问题 也可以生成返回值。 这里有一个博客讲关于这个快捷键讲的很好,传送门:最特殊的快捷键 Alt + Enter 介绍 这么好用的快捷键,有时却会遇到失效的时候,失效的原因一般是因为我们做了类似于这样的操作。如下图: 解决办法是: 第一步:进入Settings-&gt...

李人 7万+

python以下关于模块说法错误的是_以下关于Python中random模块的说法

【单选题】list(map(lambdax:len(x),['a','12','ab123']))上述代码的输出结果是____。【单选题】下面代码的运行结果是:n=1whilen>=0:print(n)n=n-1else:print(n)【多选题】以下关于Python中random模块的说法正确的是(_____)。【单选题】下面代码的运行结果是:lst=[1,3,5,7]foriinlst:...

weixin_36352023的博客 3923

Python网络爬虫与信息提取第二周测验答案

测验2: Python网络爬虫之提取 (第2周) 1. 下面哪个Python库不能用于提取网页信息?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ A re B Beautiful Soup C lxml D requests 正确答案 D req...

Divine0的博客 7200

新手提问 为什么我这个爬虫在pycharm下无法运行啊 完全没有反应

新手刚学 仿照网上的爬虫写的 但是在pycharm下运行完全没有反应import urllib import urllib2 from bs4 import BeautifulSoup def open_url(url): user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit' headers = {'User-Agent...

qq_41848603的博客 6763
上一篇: CasperJS 1分钟写完爬虫拿亚马逊商品数据
wflowho
博客等级 码龄11年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值