【大数据学习番外篇之爬虫2】爬虫入门简单例子

news/2024/11/29 0:38:10/

目录

1. 图片爬取

2. 破解百度翻译

3. 豆瓣电影爬取

4. 肯德基餐厅位置爬取 


1. 图片爬取

通过以下代码我们可以看到图片已经爬取进入虚拟机里面。

# -*- coding: utf-8 -*-
import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import osfile = ''
List = []#爬取图片链接
def Find(url, A):global Listprint('正在检测图片总数,请稍等.....')s = 0try:Result = A.get(url, timeout=7, allow_redirects=False)except BaseException:print("error");else:result = Result.textpic_url = re.findall('data-src="(.*?)" data-type', result)  # 先利用正则表达式找到图片urls += len(pic_url)if len(pic_url) == 0:print("没读到")else:List.append(pic_url)return s#下载图片
def dowmloadPicture():num = 1for each in List[0]:print('正在下载第' + str(num) + '张图片,图片地址:' + str(each))try:if each is not None:pic = requests.get(each, timeout=7)else:continueexcept BaseException:print('错误,当前图片无法下载')continueelse:if len(pic.content) < 200:continuestring = file + r'\\'  + str(num) + '.jpg'fp = open(string, 'wb')fp.write(pic.content)fp.close()num+=1if __name__ == '__main__':  # 主函数入口headers = {'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0','Upgrade-Insecure-Requests': '1'}A = requests.Session()A.headers = headersurl = 'https://mp.weixin.qq.com/s?__biz=MjM5NzU4OTQ0NQ==&mid=2650705400&idx=6&sn=5367e2f883a68cbb1a1157f0aa1057b2&chksm=bedd955289aa1c44c63a5e2e59805a24db3056dee709518884ceab738b8d306df1fd198af716&scene=27'total = Find(url, A)print('经过检测图片共有%d张' % (total))file = input('请建立一个存储图片的文件夹,输入文件夹名称即可: ')y = os.path.exists(file)if y == 1:print('该文件已存在,请重新输入')file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可: ')os.mkdir(file)else:os.mkdir(file)dowmloadPicture()print('当前爬取结束,感谢使用')

2. 破解百度翻译

实现了翻译后的文本获取,保存本地json。

import requests
import json
if __name__ == "__main__":#1.指定urlpost_url = 'https://fanyi.baidu.com/sug'#2.进行UA伪装headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}#3.post请求参数处理(同get请求一致)word = input('输入要翻译的单词:')data = {'kw':word}#4.请求发送response = requests.post(url=post_url,data=data,headers=headers)#5.获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型的,才可以使用json())dic_obj = response.json()#持久化存储fileName = word+'.json'fp = open(fileName,'w',encoding='utf-8')json.dump(dic_obj,fp=fp,ensure_ascii=False)print('over!!!')doc_obj=response.json()print(doc_obj)print('获取翻译结果成功!')

 

 

3. 豆瓣电影爬取
 

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
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': '0',#从库中的第几部电影去取'limit': '20',#一次取出的个数}headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 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)doc_obj=response.json()print(doc_obj)print('over!!!')

4. 肯德基餐厅位置爬取 

# 爬取肯德基餐厅位置信息import requests;# 判断是否是当前文件运行
if __name__ == '__main__':# 请求数据的url定义url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword';# 请求头定义headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.4153 SLBChan/103"};# 获取用户输入的城市名cityName = input("请输入查询的城市名称:")# 请求参数定义params = {"cname":"","pid":"","keyword":cityName,"pageIndex":1,"pageSize":10}# 发起第一次post请求,获取表数据量response = requests.post(url=url,data=params,headers=headers);json_obj = response.json();rowCount = json_obj.get("Table")[0].get("rowcount");# 发起第二次post请求,获取数据params["pageSize"] = rowCount;response = requests.post(url=url, data=params, headers=headers);json_obj = response.json();datas = json_obj["Table1"];# 文件内容 标题定义fileContent = "省份\t城市名\t商店名\t地址\t特殊权限\n"# 遍历提取数据,进行格式化for item in datas:t_obj = item;fileContent += t_obj.get("provinceName") + "\t";fileContent += t_obj.get("cityName") + "\t";fileContent += t_obj.get("storeName") + "\t";fileContent += t_obj.get("addressDetail") + "\t";pro_value = t_obj.get("pro")if pro_value is not None:fileContent += str(pro_value) + "\n"else:fileContent += "\n"doc_obj=response.json()print(doc_obj)# 写到文件中保存file = open("./KenDeiJi_datas.txt","w",encoding="utf-8");file.write(fileContent);file.close();

关注博主下篇更精彩

一键三连!!!

一键三连!!!

一键三连!!!
感谢一键三连!!!

 


http://www.ppmy.cn/news/296319.html

相关文章

2021单机游戏排行榜前十名

提供十大PC单机游戏排行榜前十名下载,以及推荐各类型2021单机游戏排行榜前十名&#xff0c;单机游戏排行榜大全汇集了所有的十大pc单机游戏榜下载资源&#xff0c;不断更新… 生化危机8&#xff1a;村庄 Resident Evil Village 鬼谷八荒 人类 神佑释放 怪物猎人物语2&#xff1…

shell脚本删除不带错误日志的文件

#!/bin/bash#查找带.log结尾的文件 #datals -l ./*.log| awk {print $9} datals ./*.log|cut -f 1for i in $data;doerrcat $i|grep error if [ -z "$err" ];thenecho $i,"[ok-del]"#使用的时候取消下面代码前面的##rm -f $i elseecho $i,"[error]&qu…

如何做好功能测试,看这几点就够了

关于新人如何做好功能测试&#xff0c;以下是我个人的一些思考。 01、测试基础的重要性 作为一名测试新人&#xff0c;测试基础非常非常重要。这里说的基础&#xff0c;不仅仅是什么是软件测试、软件测试的目的&#xff0c;而是测试用例的设计能力。 因工作的原因&#xff0…

【Vue3重点概念总结和实践二】(watch / props / toRaw / makeRaw)

目录 1、watch全家桶 2、Prop验证 3、原始值API 4、Vue3 Vue-cli (1) 基础篇 5、Vue3 Vue-cli (2) 组件篇 1、watch全家桶 原题&#xff1a; vuejs-challenges/README.zh-CN.md at main webfansplz/vuejs-challenges GitHub 答案&#xff1a; watch() 默认是懒侦听的…

ai文案生成器:让写作更快、更准、更有趣

人工智能在各行各业中已经广泛应用&#xff0c;其中包括文案行业。而AI文案生成器是一种利用深度学习算法、自然语言处理技术等实现文本自动生成的工具。这种工具不仅能够帮助我们简化写作流程&#xff0c;还能够提高我们的写作效率、准确度和创造力。 快速生成大量文案 使用A…

上海市大数据技术与应用创新中心成立

大数据到底有什么用&#xff1f;如何对含有意义的数据进行专业化“加工”&#xff1f;如何盘活已有的大数据资源&#xff0c;挖掘其应用价值&#xff1f;今天上午&#xff0c;上海大数据技术与应用创新中心在上海交通大学成立。该中心由上海交通大学发起成立&#xff0c;联合复…

有孚网络与上海大数据股份达成战略合作伙伴关系,启动全面合作

​3月31日&#xff0c;上海有孚网络股份有限公司&#xff08;以下简称“有孚网络”&#xff09;与上海市大数据股份有限公司&#xff08;以下简称“上海大数据股份”&#xff09;签署了《战略合作协议书》&#xff0c;双方就技术合作、市场推广、业务融合及推广合作等展开了高层…

大数据学习规划

当我说要做大数据工程师时他们都笑我&#xff0c;直到三个月后…… 2017年10月25日 14:52:16 GitChat技术杂谈 阅读数&#xff1a;70119 版权声明&#xff1a;本文为GitChat作者的原创文章&#xff0c;未经 GitChat 允许不得转载。 https://blog.csdn.net/GitChat/article/de…