如何用Requests模块获取静态网页的源代码

wufei123 发布于 2023-11-09 阅读(713)

小朋友们好,大朋友们好!我是猫妹,一名爱上Python编程的小学生。关注我,一起趣味学编程!

什么是静态网页?什么是动态网页?静态网页和动态网页是两种常见的网页类型静态网页,顾名思义,是指内容不变的网页它不含程序并且不可交互这类网页通常以.html或htm为扩展名保存在服务器上无论用户何时访问,显示的页面内容都是一样的。

当需要更新静态网页的内容时,必须手动修改HTML源文件,然后重新上传到服务器比如百度首页就是一个静态网页,鼠标下拉网页内容不变。

与静态网页不同,动态网页含有程序并可以实现交互这意味着动态网页的内容可以根据用户的操作或其他参数变化来显示不同的内容,例如登录、注册和搜索等功能此外,动态网页还可以利用数据库存储和管理数据,这使得它们能够更加灵活地响应用户的需求并提高数据管理和使用的效率。

另外,动态网页的文件扩展名通常是。asp、.aspx、.php、.jsp等。总的来说,相比静态网页,动态网页具有更高的灵活性和交互性。比如开源中国博客就是一个动态网页,当鼠标下拉时内容不断更新。

用Requests模块获取静态网页的源代码很显然,静态网页比动态网页要简单一些今天咱们用Requests请求下百度首页的网页源代码参考代码:import requestsurl = https://www.baidu.com。

headers = { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36

}reponse = requests.get(url=url,headers=headers)result=reponse.textprint(result)第1行:需要导入requests,它是第三方模块,可以模拟浏览器发起网页请求,从而获取网页的源代码。

第3行:要访问网页的地址,这里的网址要完整第4行:这里是一个键值对,User-Agent表示用户代理字典的值代表以哪种浏览器的身份访问网页,不同浏览器的User-Agent不同猫妹用的是Chrome,可以在地址输入chrome://version/查看相关信息。

第9行:使用get函数对指定的网址发起请求,服务器会根据请求的网址返回一个响应对象。Requests有多个函数:

get函数有多个参数:

第10行:通过响应对象的text属性获取网页源代码。

第11行:打印源代码。遇到乱码怎么办?比如我们访问新浪中国,我们会发现网页源码中有乱码。

乱码多半是因为编码格式不一致引起的,网页源码中的编码格式和我们打印时用的编码格式不同。新浪源码实际用的utf-8,如下图:

Python通过reponse.encoding获取网页源码编码格式,ISO-8859-1utf-8和ISO-8859-1是两套不同的编码格式,这就是乱码出现原因如果我们可以将reponse.encoding改为utf-8就可以了。

import requestsurl = https://www.sina.com.cnheaders = { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36

}reponse = requests.get(url=url,headers=headers)print(reponse.encoding)reponse.encoding=utf-8result=reponse.text

print(result)我们也可以将reponse.encoding=utf-8修改为reponse.encoding=reponse.apparent_encoding,后者会自动根据网页内容推测编码格式。

这样是不是更加通用?

好了,我们今天的分享就到这里!如果遇到什么问题,咱们多多交流,共同解决。我是猫妹,咱们下次见!

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

大众 新闻66773