爬虫小案例:适合Python零基础、对爬虫数据采集感兴趣的同学!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了爬虫小案例:适合Python零基础、对爬虫数据采集感兴趣的同学!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3064字,纯文字阅读大概需要5分钟。
内容图文
![爬虫小案例:适合Python零基础、对爬虫数据采集感兴趣的同学!](/upload/InfoBanner/zyjiaocheng/1097/fe1e79da5dca493abe6934945696a858.jpg)
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
小的时候心中总有十万个为什么类似的问题,今天带大家爬取一个问答类的网站,本堂课使用正则表达式对文本类的数据进行提取,正则表达式是数据提取的通用方法。
适合人群:
Python零基础、对爬虫数据采集感兴趣的同学!
环境介绍:
python 3.6
pycharm
requests
re
json
爬虫的一般思路
1、确定爬取的url路径,headers参数
2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据
3、解析数据 -- re模块:提供全部的正则表达式功能
4、保存数据 -- 保存json格式的数据
1、确定爬取的url路径,headers参数
base_url = ‘https://www.guokr.com/ask/highlight/?page={}‘.format(str(page)) headers = { ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36‘}
2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据
response = requests.get(base_url, headers=headers) data = response.text # print(data)
3、解析数据 -- re模块:提供全部的正则表达式功能
编译正则表达式 预编译的代码对象比直接使用字符串要快,因为解释器在执行字符串形式的代码前都推荐大家把字符串编译成代码对象
pattern = re.compile(‘<h2><a target="_blank" href="(.*?)">(.*?)</a></h2>‘, re.S) pattern_list = pattern.findall(data) # -->list# print(pattern_list)# json [{[]}]{}# 构建json数据格式for i in pattern_list: data_dict = {} data_dict[‘title‘] = i[1] data_dict[‘href‘] = i[0] data_list.append(data_dict) # 转换成json格式# json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False: json_data_list = json.dumps(data_list, ensure_ascii=False) # print(json_data_list) with open("guoke02.json", ‘w‘, encoding=‘utf-8‘) as f: f.write(json_data_list)
4、保存json格式的文件
每页20条数据,共100页,2000条数据~
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
完整代码如下:
# requests # re # json # 爬虫的一般思路 # 1、确定爬取的url路径,headers参数 # 2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据 # 3、解析数据 -- re模块:提供全部的正则表达式功能 # 4、保存数据 -- 保存json格式的数据 import requests # pip install requestsimport re import json data_list = [] for page in range(1, 101): print("====正在爬取第{}业数据====\n".format(page)) # 1、确定爬取的url路径,headers参数 base_url = ‘https://www.guokr.com/ask/highlight/?page={}‘.format(str(page)) headers = { ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36‘} # 2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据 response = requests.get(base_url, headers=headers) data = response.text # print(data)# 3、解析数据 -- re模块:提供全部的正则表达式功能# <h2><a target="_blank" href="https://www.guokr.com/question/669761/">印度人把男人的生殖器叫林伽,把女人的生殖器叫瑜尼,林伽和瑜尼的交合,便是瑜伽。这是真还是假的</a></h2># 3、1 编译正则表达式 预编译的代码对象比直接使用字符串要快,因为解释器在执行字符串形式的代码前都推荐大家把字符串编译成代码对象 pattern = re.compile(‘<h2><a target="_blank" href="(.*?)">(.*?)</a></h2>‘, re.S) pattern_list = pattern.findall(data) # -->list# print(pattern_list)# json [{[]}]{}# 构建json数据格式for i in pattern_list: data_dict = {} data_dict[‘title‘] = i[1] data_dict[‘href‘] = i[0] data_list.append(data_dict) # 转换成json格式# json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False: json_data_list = json.dumps(data_list, ensure_ascii=False) # print(json_data_list)# 保存json格式的文件 with open("guoke02.json", ‘w‘, encoding=‘utf-8‘) as f: f.write(json_data_list)
原文:https://www.cnblogs.com/python0921/p/12836359.html
内容总结
以上是互联网集市为您收集整理的爬虫小案例:适合Python零基础、对爬虫数据采集感兴趣的同学!全部内容,希望文章能够帮你解决爬虫小案例:适合Python零基础、对爬虫数据采集感兴趣的同学!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。