为了visa面签预约学习python爬虫-DAY2

本文介绍了如何使用Python的requests库和正则表达式,通过伪装User-Agent抓取网页并提取特定表格内容,解决正则匹配HTML表格外层结构的问题,包括处理空格和HTML属性顺序的灵活性。

1.引入正则:

使用正则的可以把获取到的整个页面里指定的需要的部分匹配出来

引入模块:

import re
2.实践:

import requests
import re

if __name__ == "__main__":
  #UA伪装:将对应的User-Agent封装到一个字典中
  headers = {
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Mobile Safari/537.36 Edg/121.0.0.0'
  }
  url = 'https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2024/visa-bulletin-for-march-2024.html'
  #https://travel.state.gov
  #https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin.html
  #https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2024/visa-bulletin-for-march-2024.html
  #-->地址变化,发起的不是一个ajax请求
  #get方法会返回一个响应对象
  response = requests.get(url=url,headers=headers)
  #text返回的是字符串形式的响应数据
  page_text=response.text
  #print(page_text)

  ex='<table\s+bord
### Python PyVISA库使用指南 #### 安装PyVISA及其依赖项 为了能够利用PyVISA来操作测量设备,需先确保已安装Python环境。之后可通过`pip`工具轻松完成PyVISA及相关组件的安装: ```bash pip install pyvisa pip install pyvisa-py ``` 上述命令分别用于安装PyVISA核心包以及pyvisa-py作为替代性的纯Python VISA实现[^1]。 #### 配置与初始化 一旦安装完毕,便可以在程序中导入并配置PyVISA资源管理器实例。这一步骤对于后续连接至具体硬件至关重要: ```python import pyvisa rm = pyvisa.ResourceManager() print(rm.list_resources()) ``` 此段代码创建了一个ResourceManager对象,并打印当前计算机可访问的所有仪器列表[^3]。 #### 控制外部设备 假设目标是向地址为`GPIB0::22::INSTR`的特定仪器发送指令,则可以按照如下方式编写交互逻辑: ```python inst = rm.open_resource('GPIB0::22::INSTR') inst.write('*IDN?') # 发送查询身份识别字符串命令给仪器 response = inst.read() # 获取来自仪器的回答 print(response.strip()) # 输出不带多余空白符的结果 ``` 这段简单的例子展示了如何打开指定路径下的资源、执行写入操作并向该装置请求反馈信息[^4]。 #### 进阶应用案例 除了基本读/写功能外,PyVISA还支持更复杂的场景,比如批量处理多条命令或设置超时参数等高级特性。下面是一个稍微复杂一点的应用示范: ```python from time import sleep with rm.open_resource('USB0::0x1AB1::0x04CE::DS8A23456789::INSTR', open_timeout=5000) as scope: scope.clear() # 清除任何先前存在的错误队列 for i in range(5): scope.write(f':MEASure:FREQuency CHANnel{i+1}') freq = float(scope.query(':FETCH?')) print(f'Channel {i + 1} frequency is {freq:.2f} Hz') if not (1e3 <= freq <= 1e6): # 如果频率不在合理范围内则中断测试 break sleep(1) # 等待一秒再继续下一个通道 ``` 这里采用上下文管理器(`with`)语简化了资源关闭过程;同时加入了循环结构和条件判断语句使整个流程更加灵活可控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值