# 聚焦爬虫:爬取页面中指定的页面内容。
# 一编码流程:
# 一指定url
# 一发起请求
# -获取响应数据
# 一数据解析
# -持久化存储
# 数据解析分类:
# 一正则
# - bsi4
# - xpath(***)
# 数据解析原理概述
# 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
# 1.进行指定标签的定位
# 2.标签或者标签对应的属性中存储的数据值进行提取(解析)
爬取图片
import requests
if __name__=="__main__":
#如何获取图片数据
url='https://pic.qiushibaike.com/system/pictures/12432/124325144/medium/VGY0GXITXL54MVZ5.jpg'
#content返回的是二进制形式的图片数据
# text(字符串) content(二进制) json(对象)
img_data=requests.get(url=url).content
with open('./qiutu.jpg','wb') as fp:
fp.write(img_data)
爬取豆瓣电影排行榜
import requests
import json
if __name__=="__main__":
url='https://movie.douban.com/j/chart/top_list'
param={
'type': '24',
'interval_id': '100:90',
'action':'',
'start': '40',#从库中的第几部电影开始取
'limit':'20',#一次取出的个数
}
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'
}
response=requests.get(url=url,params=param,headers=headers)
list_data=response.json()
fp=open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)
print('over!!!')
爬取百度翻译
import requests
import json
if __name__=="__main__":
#1.指定URL
post_url='https://fanyi.baidu.com/sug'
# 2.进行UA伪装
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'
}
#3.post请求参数处理
word=input('enter a word :')
data={
'kw':'dog'
}
#4.请求发送
response=requests.post(url=post_url,data=data,headers=headers)
#5.获取响应数据,json()方法返回的是obj(如果确认响应数据是json类型的,才可以使用json())
dic_obj=response.json()
print(dic_obj)
#持久化存储
fileName=word+'.json'
fp=open(fileName,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print('over!!!')
网页采集器
#UA; User-Agent(请求载体的身份标识)
#UA检测:门户网站的服务器会检测对求的载体身份标识如果检测到请求的戴体身份标识为
#某一款浏览器
#说明改请求是一个正常的请求,但是,如果检测到测到请求的载体身份标识不是基于某一款浏览器的则表示该
#为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求
#UA伪装:让爬虫对应的请求载体身份标识伪装成某某一款浏览器
import requests
if __name__ == "__main__":
#UA伪装:将对应的User-Agent封装到一个字典中
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'
}
url ="https://www.sogou.com/web"
#处理ucl携带的参数:封装到字典虫
kw=input("enter a word:")
param ={
'query':kw
}
#对指定的url发起的请求对应的url是携带参数的.并且请求过程史处理了参数
response=requests.get(url=url,params=param,headers=headers)
page_text=response.text
fileName=kw+".html"
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'保存成功!!!')