想要爬取网络资源,我们首先需要导入三个重要的库requests,re,os
requests
: 这个库用于进行HTTP请求。你可以使用它来向Web服务器发送GET或POST请求,以获取或发送数据。通常用于与Web API交互或抓取网页内容。
re
(正则表达式): re
库用于处理文本数据,特别是字符串匹配和搜索。你可以使用正则表达式来查找、替换、分割字符串等操作。它非常有用,当你需要从文本中提取特定模式的信息时。
os
(操作系统): os
库用于与操作系统进行交互。你可以使用它来执行各种文件和目录操作,如创建、删除、重命名文件,遍历目录结构,获取文件属性等。这对于管理文件系统非常有用。
第一步,获取网页源代码
def get_html(url,headers,params): response = requests.get(url,headers=headers,params=params) response.encoding="utf-8" if response.status_code==200: return response.text else: print("获取错误")
第二步,获取资源地址
def parse(html): result = re.findall('thumbURL":"(.*?)"', html, re.S) return result
第三步,获取图片二进制源码
def get_pic_content(url): response = requests.get(url) # response.encoding = "utf-8" return response.content
第四步,创建文件夹
# 新建文件夹 函数 def create_flode(flode_name): # 异常处理 try: os.mkdir(flode_name) except: print("文件已存在")
第五步,保存图片
# 保存图片 def save_pic(folde_name,content,pic_name): with open(folde_name+"/"+str(pic_name)+".jpg","wb") as f: f.write(content) f.close()
第六步,定义main函数,获取url,headers,params
一、获取url
打开百度,搜索猫猫虫
右键此页面,点击检查
二,获取headers
三、获取params
在获取三个重要的参数后,我们就可以构造主函数了
def main(): # 输入文件夹名字 flode_name = input("请输入您想要爬取的图片的名字:") # 输入要抓取的图片页数 page_num = input("请输入要抓取的页数(0,1,2,3,4,5,6,.....)") # 调用函数创建文件夹 create_flode(flode_name) # 构建循环 pic_name = 0 for i in range(int(page_num)): url="" headers = { } params = { } html = get_html(url, headers, params) # print(html) result = parse(html) for item in result: # 调用函数获取图片二进制源码 pic_contont = get_pic_content(item) # 调用函数保存图片 save_pic(flode_name,pic_contont, pic_name) pic_name += 1 print("已保存第" + pic_name.__str__() + "张图片")
其中,url,headers,parems内填入我们刚才复制的内容,并且后面两个参数需要转换成字典形式
最后,运行main函数
# 执行main if __name__ == '__main__': main()
以上就是一个网络爬虫的实例,希望能对您有所帮助