今天继续我们的爬虫学习,学习一个requests实战之网页采集器:以搜狗首页为例

代码的设计步骤:

我们就按照这个设计流程进行开发网页采集器:

(1)UA伪装:将对应的User-Agent封装到一个字典内

这里,补充一点小知识:

UA:User-Agent(请求载体的身份标识)

UA检测:门户网站的服务器会检测对应请求载体的身份标识,如果是浏览器则说明是一个正常请求,否则很有可能拒绝该请求

UA伪装:让爬虫对应的请求载体身份标识伪装成某一个浏览器

(2)发起请求,get方式会返回一个响应对象

(3)获取响应数据,text返回的是字符串形式的响应数据

(4)持久化存储数据

 

下面,附上我的代码部分:

import requests
'''
网页采集器

UA:User-Agent(请求载体的身份标识)
UA检测:门户网站的服务器会检测对应请求载体的身份标识,如果是浏览器则说明是一个正常请求,否则很有可能拒绝该请求
UA伪装:让爬虫对应的请求载体身份标识伪装成某一个浏览器
'''
if __name__ == "__main__":
    #UA伪装:将对应的User-Agent封装到一个字典内
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }
    url = 'https://www.sogou.com/web'
    # 2.发起请求,get方式会返回一个响应对象
    #处理url携带的参数:封装到字典内
    kw = input('enter a word:')
    param = {
        'query':kw
    }
    #对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
    response = requests.get(url=url,params=param,headers=headers)
    # 3.获取响应数据,text返回的是字符串形式的响应数据
    page_text = response.text
    fileName = kw+'.html'
    # 4.持久化存储
    with open(fileName, 'w', encoding='utf-8') as fp:
        fp.write(page_text)
    print(fileName,"保存成功!!!")

运行python代码,我输入了“huazhuangpin”,那么就生成了huazhuangpin.html文件

 

huazhuangpin.html文件详细代码为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>化妆品生产许可信息管理系统服务平台</title>
	<meta http-equiv="keywords" content="化妆品生产许可信息管理系统服务平台,化妆品生产许可证查询,化妆品生产许可企业查询,化妆品生产许可企业"/>
    <meta http-equiv="description" content="化妆品生产许可信息管理系统服务平台是由国家药品监督管理局主办,此平台可以查到化妆品生产企业信息"/>
	<script language="javascript" type="text/javascript">
       var G = {"baseUrl":"http://scxk.nmpa.gov.cn:81/xk/"};
    </script>
	<script src="http://scxk.nmpa.gov.cn:81/xk/itownet/_static/common/jquery/jquery-1.7.1.min.js"  type="text/javascript" charset="utf-8"></script>
	<script	src="http://scxk.nmpa.gov.cn:81/xk/itownet/_static/common/jquery/plugins/jquery.cookie.js"	type="text/javascript" charset="utf-8"></script>
	<script src="http://scxk.nmpa.gov.cn:81/xk/itownet/portal/jquery.myPagination.js"   type="text/javascript" charset="utf-8"></script>
	<link rel="stylesheet" href="http://scxk.nmpa.gov.cn:81/xk/itownet/portal/style_portal.css" type="text/css" />
	<link rel="stylesheet" href="http://scxk.nmpa.gov.cn:81/xk/itownet/_static/css/page.css"	type="text/css" />
    <script	src="http://scxk.nmpa.gov.cn:81/xk/itownet/portal/portal.js?v=2017-01-15"	type="text/javascript" charset="utf-8"></script>
</head>

<body >
	<div class="hzbbanner"><div class="hzbbannertxt"><a href="http://scxk.nmpa.gov.cn:81/xk/itownet/allQyxx/allQyxx.jsp" target="_self" title="进入化妆品生产许可信息管理系统">【全部许可证】</a><a href="http://scxk.nmpa.gov.cn:81/xk/login.jsp" target="_blank" title="进入化妆品生产许可信息管理系统">【业务办理】</a></div></div>
	<div class="hzbscbox">
		<div class="hzbscin">
			<div style="position:relative;">
				<div class="hzbtabs">
					    <span id="xkzh" class="hzbtabon" dataid="1">许可证编号</span>

						<span id="qymc" dataid="2">企业名称</span>

						<span id="xydm" dataid="3">社会信用代码</span>

						<span id="sf" dataid="4">所属省份</span>

						<span id="lb" dataid="5">生产类别</span>

						<input type="hidden" id="conditionType" value="1"/>

				</div>

			</div>

			<input type="text" id="searchtext" class="hzbsr" name="kw" value=""	placeholder="请输入许可证号" />

				<input type="button" class="hzbbtn"	id="searchInfo" value="查询" />

		</div>

	</div>
	<div class="dzpzmain">
		<div id="FileItems">
		    <ul class="hzblist"  style="margin-top: 0px;margin-bottom: 0px;border-top: 0px;border-bottom: 0px;">

				<li class="columm"><i>发证日期</i>

					<dl>企业名称

					</dl>

					<ol>许可证编号

					</ol>

					<p>发证机关</p> <em>有效期至</em>
				</li>
			</ul>
			<ul class="hzblist" id="gzlist" style="margin-top: 0px;border-top: 0px;">
			</ul>
		</div>
        <div id="itownetPage"></div>
	</div>
	<div class="hzbbtm">
		本站由<a href="http://www.sfda.gov.cn/WS01/CL0479/" target="_blank">国家药品监督管理局</a>主办
		版权所有 未经许可禁止转载或建立镜像 Copyright &copy; NMPA All Rights Reserved
	</div>
</body>
</html>

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐