代码拉取完成,页面将自动刷新
抓取系统重要组成部分。抓取的是一整张页面
建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。
监测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。
robots.txt
,可以查看。常用加密方式:
是:Python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
UA: User-Agent 请求载体的身份标识
UA检测:门户网站的服务器会检测对应请求的身份标识,如果检测到的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。
如果检测到不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫),服务器很可能拒绝此次请求。
UA伪装:让爬虫对应载体的身份标识伪装成某一款浏览器。
import requests
headers = {
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, '
'like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 '
}
url = 'https://www.sogou.com/web'
response = requests.get(url, params={'query': 'key',}, headers=headers)
# 爬取搜狗指定词条对应的搜索结果页面:
# UA 伪装
import requests
if __name__ == '__main__':
url = 'https://www.sogou.com/web'
# UA 伪装
headers = {
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, '
'like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 '
}
query = input('请输入搜索关键词: ')
param = {
'query': query,
}
response = requests.get(url, params=param, headers=headers)
page_text = response.text
file_name = query+'.html'
with open(f'./response/{file_name}', 'w', encoding="utf-8") as fp:
fp.write(page_text)
print('.........')
# 爬取百度翻译结果
# post 请求
import json
import requests
if __name__ == '__main__':
url = 'https://fanyi.baidu.com/sug'
headers = {
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, '
'like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 '
}
query = input('请输入需要翻译的词: ')
data = {
'kw': query
}
response = requests.post(url, data=data, headers=headers)
# print(response.text)
# 确认服务器返回的对象为 json
dict_obj = response.json()
file_name = query + '.json'
with open(f'./response/{file_name}', 'w', encoding="utf-8") as fp:
json.dump(dict_obj, fp=fp, ensure_ascii=False)
print('.........')
主要思路为,通过抓包工具获得 网站页面下拉到底发送 ajax请求(获得下一页)的路由信息。通过 request模拟此请求。
http://www.kfc.com.cn/kfccda/storelist/index.aspx
# 爬取化妆品生产许可证网站 的相关企业数据。
import json
import requests
# 全部企业的简略信息,包含 ID
url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
# 根据 id查询企业详细信息
itemUrl = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
if __name__ == '__main__':
headers = {
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, '
'like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 '
}
item_list = []
for i in range(1, 6):
data = {
'on': True,
'page': i,
'pageSize': 15,
'conditionType': 1,
}
dict_obj = requests.post(url, data=data, headers=headers).json()
# 获取企业 id,得到单个企业信息
for item in dict_obj['list']:
item_list.append(requests.post(itemUrl, data={'id': item['ID']}, headers=headers).json())
file_name = 'all_item' + '.json'
with open(f'./response/{file_name}', 'w', encoding="utf-8") as fp:
json.dump(item_list, fp=fp, ensure_ascii=False)
print('.........')
# We are all in the gutter, but some of us are looking at the stars.
# 我们都处在环境极差之地,但有人的目光在上空的星星。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。