获取网址网页的源代码使用requests库的get函数。
import requests
url = 'https://www.baidu.com'
head={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
html = requests.get(url, headers=head)
html.encoding='utf-8'
with open('test.html', 'w', encoding='utf-8') as f:
f.write(html.text)
代码中get函数的headers字典的User-Agent获取方法:检查中Networks菜单的数据包的请求头的user-agent字段

在自己写代码获取网站的源代码时,先查一下浏览器与网站交互的这个属性,这样能获取完整的网页源代码,上面的代码得到的结果有百度网页的脚本源码以及css、html代码。
即使使用过时的User-Agent属性值,即定义head={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}也能得到完整的js、css、html代码。
若没有自定义这User-Agent的属性值,即上述代码定义html时直接html=requests.get(url)得到的结果只有html代码。
User-Agent的作用是让目标网站误以为本程序是浏览器,并非爬虫。如果是爬虫,就给个html代码,如果不是,给个css和js让浏览器能够渲染。
如果得到的html中文乱码,记着html.encoding属性的设置。现在编码一般都是UTF8了,我觉得我电脑上的一些处理会中文乱码的原因是win10家庭版默认中文编码是gbk,这个问题一时不能解决。
这样应该能愉快地下载网页源代码然后解析进行玩耍了。(邪恶
老实说浏览器右键有个查看网页源码的功能,复制粘贴就好,但这太不程序员。
使用这个函数来下载网页上的图片,代码
import requests
from bs4 import BeautifulSoup
from tellwlib.py.download import download_file
import os
di = 'ok'
if not os.path.exists(di):
os.mkdir(di)
for i in range(1,4):
url = 'https://adnmb2.com/t/27245369?page=%d'%i
head={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}
html = requests.get(url, headers=head)
html.encoding='utf-8'
soup = BeautifulSoup(html.text, 'lxml')
img_as = soup.findAll('img', {'class':'h-threads-img'})
for img_a in img_as:
data_src = img_a.attrs['data-src']
download_file(data_src, di+'/'+data_src.split('/')[-1])
tellwlib.py.download.download_file的应用参见tellwlib的描述,或者你有其他的解决方法。
拓展阅读:正则表达式30分钟入门教程
参考链接
1
Python篇----Requests获取网页源码(爬虫基础)
2
bs4解析html文件记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现