下面是Python实现自动访问网页的攻略:
环境准备
- 安装Python3.x,
- 安装相关的第三方依赖库requests、beautifulsoup4等
实现流程
- 导入需要使用的库
import requests # 发送HTTP请求模块
from bs4 import BeautifulSoup # 解析HTML字符串模块
- 发送HTTP请求获取页面
url = '目标页面URL'
headers = {} # 如果需要自定义请求头,可以在这里定义,不需要可以留空
params = {} # 如果URL中有参数,可以在这里定义,没有可以留空
response = requests.get(url, headers=headers, params=params)
- 分析页面结构,解析HTML数据
# 使用BeautifulSoup对HTML进行解析
soup = BeautifulSoup(response.text, 'html.parser')
# 可以使用find、find_all等方法查找需要的HTML节点,并提取相应的数据
# 以下示例中,假设需要获取目标页面中的所有图片链接,构造如下代码:
imgs = soup.find_all('img')
for img in imgs:
print(img.get('src'))
- 处理提取出的数据
# 比如使用os.mkdir创建新的文件夹, 并下载图片到文件夹内
import os
for img in imgs:
src = img.get('src')
img_name = src.split('/')[-1] # 获取图片名称
img_response = requests.get(src)
if img_response.status_code == 200:
if not os.path.exists('./imgs'):
os.mkdir('./imgs') # 新建文件夹imgs
with open('./imgs/' + img_name, 'wb') as f:
f.write(img_response.content) # 保存图片到文件
- 运行程序,自动访问网页、解析数据并保存
if __name__ == '__main__':
url = 'https://example.com'
headers = {} # 如果需要自定义请求头,可以在这里定义,不需要可以留空
params = {} # 如果URL中有参数,可以在这里定义,没有可以留空
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
imgs = soup.find_all('img')
for img in imgs:
src = img.get('src')
img_name = src.split('/')[-1] # 获取图片名称
img_response = requests.get(src)
if img_response.status_code == 200:
if not os.path.exists('./imgs'):
os.mkdir('./imgs') # 新建文件夹imgs
with open('./imgs/' + img_name, 'wb') as f:
f.write(img_response.content) # 保存图片到文件
示例说明
示例一
代码要求:发送POST请求
import requests # 发送HTTP请求模块
from bs4 import BeautifulSoup # 解析HTML字符串模块
if __name__ == '__main__':
url = 'https://example.com/login'
headers = {'Content-Type': 'application/json'} # 自定义请求头
data = {'username': 'admin', 'password': 'password'} # POST数据
response = requests.post(url, headers=headers, json=data) # 发送POST请求
soup = BeautifulSoup(response.text, 'html.parser')
# 处理返回页面的数据
示例二
代码要求:使用代理IP访问
import requests # 发送HTTP请求模块
from bs4 import BeautifulSoup # 解析HTML字符串模块
proxy = {
'http': 'http://127.0.0.1:8888', # http代理
'https': 'https://127.0.0.1:8888' # https代理
}
if __name__ == '__main__':
url = 'https://example.com'
headers = {} # 如果需要自定义请求头,可以在这里定义,不需要可以留空
params = {} # 如果URL中有参数,可以在这里定义,没有可以留空
response = requests.get(url, headers=headers, params=params, proxies=proxy) # 使用代理IP访问
soup = BeautifulSoup(response.text, 'html.parser')
# 处理返回页面的数据
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现自动访问网页的例子 - Python技术站