Python爬虫爬取网页数据并存储(一)

article/2025/3/19 22:37:04

Python爬虫爬取网页数据并存储(一)

    • 环境搭建
    • 爬虫基本原理
    • urllib库使用
    • requests库使用
    • 正则表达式
    • 一个示例

环境搭建

1.需要事先安装anaconda(或Python3.7)和pycharm
*anaconda可在中科大镜像下下载较快
2.安装中遇到的问题:
*anaconda(记得安装过程中点添加路径到path里,没添加的话手动添加:
计算机右键属性——高级系统设置——环境变量——用户/系统变量path路径中,添加 C:\Users\Aurora\Anaconda3;(anaconda安装路径))
打开jupyter notebook ,出现页面空白解决方案:
打开 C:\Users\自己的用户名.jupyter\jupyter_notebook_config.py
在末尾输入以下代码:
import webbrowser
webbrowser.register(“Chrome”, None, webbrowser.GenericBrowser(u"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"))
c.NotebookApp.browser = u’Chrome’
##浏览器名,浏览器路径(通过右键属性可以看到路径)

 *anaconda ,打开cmd/anaconda prompt,输入conda list 即可查看已有的包,还需添加可用 conda install package_name 来添加在本次网络爬虫过程中,我们需要的库有: re,urllib(这两个库为Python内置库,不需要添加),requests,lxml(anaconda中已存在,Python3.7安装装需要使用pip,下载whl软件),beautifulsoup4,json*pycharm基础设置问题:设置为conda环境下Python3.7

爬虫基本原理

什么是爬虫?
爬虫是请求网站并提取数据的自动化程序

从简单的例子开始:
我们随便打开一个网站,我们在百度上搜索新闻,右键,审查元素
在这里插入图片描述
会得到这样一个响应,点Name那一栏唯一的一个news.baidu.com,我们会发现以下信息:
在这里插入图片描述
我们就通过这些html代码来获取信息。
让计算机代替人工来提取信息就是我们要用Python所要实现的任务。
所以我们就可以通过以上过程总结爬虫的基本原理
1.发出请求:即发出一个Request
2.获取响应内容:如果服务器正常响应就可以得到一个Response
3.解析内容:得到的内容是HTML,可以用正则表达式,网页解析库进行解析。
4.保存数据

urllib库使用

urllib.request 请求模块

//简单使用
import urllib.request
request = urllib.request.Request('http://www.baidu.com')
response = urllib.request.urlopen(request)
print(response.read(),decode('utf-8'))

urllib.error 异常处理模块

urllib.parse url解析模块

urllib.robotparser robots.txt解析模块

(建议用下面的requests库而不使用urllib库)

requests库使用

解析json

//
import json
import requests
response = request.get("http://httpbin.org/get")
print(response.json())
//添加headers参数(应对一些反爬虫的最简单的方法)
//以猫眼电影top100为例import requestsurl = 'https://maoyan.com/board/4?offset=0'headers = {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}response = requests.get(url,headers = headers)response.encoding = 'utf-8'

正则表达式

正则表达式
在这里插入图片描述
在这里插入图片描述


一个示例

import requests
from requests.exceptions import RequestException
import re
import jsondef get_one_page(url,headers):try:response = requests.get(url,headers = headers)response.encoding = 'utf-8'if response.status_code == 200:return response.textreturn Noneexcept RequestException:return Nonedef parse_one_page(html):
//提取网页信息的正则表达式pattern = re.compile('<dd>.*?board-index.*?>(\d*)</i>.*?data-src="(.*?)".*?name"><a'+'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)(/p)'+'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.S)  items = re.findall(pattern,html)for item in items:yield {'index':item[0],'image': item[1],'title': item[2],'actor': item[3].strip()[3:],'time': item[4].strip()[5:],'score': item[5]+item[6]}
//写入result.txt文件中
def write_to_file(content):with open('result.txt', 'a') as f:f.write(json.dumps(content) + '\n')f.close()def main():
//猫眼电影爬取需添加headers,从用户角度访问url = 'https://maoyan.com/board/4?offset=0'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = {'User-Agent': user_agent}html = get_one_page(url, headers)for item in parse_one_page(html):print(item)write_to_file(item)if __name__ == '__main__':main()

运行结果:
在这里插入图片描述
上述例子为抓取一页信息并存储,若要抓取多页的信息,需要引入Pool模块,用多线程并发抓取,如下构造:

def main(offset):url = 'https://maoyan.com/board/4?offset=0'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = {'User-Agent': user_agent}html = get_one_page(url, headers)for item in parse_one_page(html):print(item)write_to_file(item)
if __name__ == '__main__':p = Pool()p.map(main.[i*10 for i in range(10)]       

http://chatgpt.dhexx.cn/article/yyiLCVx4.shtml

相关文章

【用Java爬取网页图片——爬虫爬取数据】

用Java爬取网页图片——爬虫爬取数据 1、在创建项目中导入jsoup 2、创建一个保存下载图片的路径 3、使用URL读取网页路径&#xff0c;jsoup读取网页内容 4、利用属性标签获取图片连接块 5、因为该路径没有http&#xff1a;头&#xff0c;用StringBuilder增加 5、完善下载路径…

爬虫爬取数据

打开爬取工具页面,使用爬虫工具列表: 开始节点 仅仅是爬虫的起点,所有流程图必须有该节点。 爬取节点 该节点用于请求HTTP/HTTPS页面或接口 请求方法:GET、POST、PUT、DELETE等方法 URL: 请求地址 延迟时间:单位是毫秒,意思是爬取之前延迟一段时间在执行抓取 超时时间:网…

手把手教会 爬虫爬取json数据

提示&#xff1a;本章爬取练习的url地址 发现曲谱 (yoopu.me) 前言 我们学爬虫&#xff0c;有时候想要的数据并不在html文本里面&#xff0c;而是通过js动态渲染出来的。 如果我们需要爬取此类数据的话&#xff0c;我们该怎么办呢&#xff1f; 请读者接着往下看&#xff1a…

六个步骤学会使用Python爬虫爬取数据(爬虫爬取微博实战)

用python的爬虫爬取数据真的很简单&#xff0c;只要掌握这六步就好&#xff0c;也不复杂。以前还以为爬虫很难&#xff0c;结果一上手&#xff0c;从初学到把东西爬下来&#xff0c;一个小时都不到就解决了。 Python爬虫六部曲 第一步&#xff1a;安装requests库和BeautifulS…

网络爬虫入门:网络爬虫的目的,企业获取数据的方式,可以用于做爬虫的程序语言,爬虫爬取数据的步骤

目录 爬取数据的目的&#xff1a; 1.获取大量数据&#xff0c;用于做数据分析 2.公司项目的测试数据&#xff0c;公司业务所需数据 企业获取数据的方式 1.公司自有数据 2.第三方数据平台购买&#xff08;数据堂&#xff0c;贵阳大数据交易所&#xff09; 3.爬虫爬取数据…

利用爬虫爬取数据集

相信大家在学习tensorflow的过程中&#xff0c;会想要自己动手来试试加载我们的数据集&#xff0c;而不再局限于从datasets上下载数据集。但是往往一个模型的训练就需要很庞大的数据集&#xff0c;因此写下这篇博客教大家如何用爬虫爬取图片&#xff0c;制作自己的数据集&#…

微信小程序实名认证接口_人脸核身接口整理

一、微信小程序实名认证接口_人脸核身接口整理 开场一个字&#xff1a; 悲观。目前实名接口&#xff0c;人脸识别接口开放度不高。“实名信息授权”已经回收。 二、人脸核身接口 1.使用条件 需要现申请通过才能使用。 目前开放的分类不多&#xff0c;并且还需要行业资质。 …

微信小程序—人脸识别

1.首先你要有一个可以就行人脸识别的服务器&#xff0c;然后就是上传到百度云&#xff0c;百度云人脸识别的API接口全面升级到V3版本&#xff0c;并进行开放测试 2.wxml代码 <camera device-position"{{sxt}}" flash"off" binderror"error" s…

微信小程序实现人脸识别注册登录

前言 这是一篇关于一个原创微信小程序开发过程的原创文章。涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口。小程序的主体是一个用于个人密码存储的密码管理器&#xff0c;在登陆注册阶段&#xff0c;需要调用百度云人脸识别接口以及百度云在线人脸库的管理接口。…

C# Winform开发人脸识别小程序 (基于百度接口)

目录 一、设计思路1、背景2、简介3、用到的技术4、设计功能一&#xff1a;用户注册功能概述功能示意图时序图 功能二&#xff1a;人脸识别功能概述功能示意图时序图 二、实现1、环境准备2、百度接口配置3、技术准备4、代码实现功能一&#xff1a;用户注册功能二&#xff1a;人脸…

python人脸检测与微信小程序_微信小程序人脸识别功能

本文档以微信小程序为例&#xff0c;微信小程序开发人脸核身功能需要两个申请&#xff1a;腾讯云申请人脸识别服务和小程序申请人脸识别服务&#xff08;注意&#xff1a;只有符合以下条件的机构才能在小程序端申请&#xff09; 政务&#xff1a;政府机构或事业单位 金融&…

使用uniapp开发微信小程序的人脸采集功能/人脸识别功能

✅作者简介&#xff1a;大家好我是瓜子三百克&#xff0c;励志成为全栈工程师的一枚程序猿&#xff0c;也是喜欢在学习和开发中记录笔记的小白博主&#xff01; &#x1f4c3;个人主页&#xff1a;瓜子三百克的主页 &#x1f525;系列专栏&#xff1a;uniapp前端 &#x1f496;…

无需证书微信小程序实现人脸识别—E证通

E证通 前言收费标准接入准备小程序1、 添加服务器域名白名单2、添加业务域名白名单3、安装 SDK/小程序包4、SDK 调用步骤即实操代码4.1、初始化 SDK4.2、 调用 SDK 5、拿到回调结果6、使用uni-app开发6.1、小程序运行后&#xff0c;在小程序中丢入sdk包6.2、把sdk包转换成uni-a…

小程序实现人脸识别与小程序发布

文章目录 前言主要实现功能效果演示PC端手机端 调用百度Ai人脸检测接口小程序发布流程项目源码编程之外 前言 人脸识别其实没那么复杂&#xff0c;我国几个大厂都有他们的AI开放平台&#xff0c;调用一下他们的人脸检测接口就行了&#x1f601;&#xff08;虽然接口不是自己写的…

节假日查询接口,加班,补班,日期查询,放假,日历

一、接口介绍 通过本数据&#xff0c;可以查询节假日、加班日期&#xff0c;以及每个日期的对应的国际日和我国传统节日的简介。广泛使用于日程安排、证券投资、日历等功能的应用中展示。 二、使用案例截图 如何查看调用效果&#xff1f; 1、通过链接&#xff0c;点击【在线…

php中阿里云快递物流查询接口使用

php中阿里云快递物流查询接口使用 官方给的php代码如下&#xff1a; $host "https://ali-deliver.showapi.com";$path "/showapi_expInfo";$method "GET";$appcode "你自己的AppCode";$headers array();array_push($headers, &qu…

智能疾病查询接口

疾病类目&#xff0c;疾病症状&#xff0c;智能疾病查询&#xff0c;医疗知识图谱 ​ 一、接口介绍 最全的疾病大全&#xff0c;收集了数万种常见疾病&#xff0c;任何常见疾病都可查询。 二、功能体验 三、演示效果 四、API文档 4.1 查询疾病科目 4.1.1接入点说明 查询…

调用阿里API获取城市天气信息

目录 一&#xff0e;阿里云天气预报API接口介绍2.1阿里云天气预报API介绍2.2 调用API准备工作及认识 二&#xff0e;调用天气预报API三&#xff0e;代码实现四&#xff0e;结果展示五、问题与解决办法 赵继涛&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;20…

如何调用showapiRequest解决图片验证码识别?

一、思路&#xff08;我埋了一个坑&#xff09; &#xff08;1&#xff09;保存整张登录页面的图片 &#xff08;2&#xff09;剪切验证码区域的图片 &#xff08;3&#xff09;调用showapiRequest识别剪切好的图片 二、保存整张图片 保存当前页面的整张图片括号里面是保存图…

天气预报

到目前为止,我们的公众号已经可以回复用户发出的消息,但是如果仅仅如此,就没必要设为开发模式了。完全不懂编程的人也可以在微信公众平台上设置回复用户的消息。 现在我们来实现我们的公众号查询全国各个城市天气这么一个功能,像公众号输入天气+地名(天气南京)就可以查询…