当前位置: 首页 > news >正文

电子商务网站设计的原则和内容/百度大数据分析平台

电子商务网站设计的原则和内容,百度大数据分析平台,网络安全工程师年薪,附近做广告招牌的一、爬虫原理 网络爬虫是一种用于自动获取网页内容的程序。它模拟用户浏览网页的过程,通过发送HTTP请求获取网页的源代码,并利用解析和提取技术来获取所需的数据。 1. HTTP请求与响应过程 爬虫向目标网站发送HTTP请求,请求包含URL、请求方…

一、爬虫原理

网络爬虫是一种用于自动获取网页内容的程序。它模拟用户浏览网页的过程,通过发送HTTP请求获取网页的源代码,并利用解析和提取技术来获取所需的数据。

1. HTTP请求与响应过程

爬虫向目标网站发送HTTP请求,请求包含URL、请求方法(如GET或POST)、请求头(Headers)等。服务器接收到请求后,会返回HTTP响应,其中包含状态码、响应头和响应体(网页内容)。

2. 常用爬虫技术

  • 请求库:例如requestsaiohttp,用于发送HTTP请求。
  • 解析库:例如BeautifulSouplxmlPyQuery,用于解析网页内容。
  • 存储库:例如pandasSQLite,用于存储爬取的数据。
  • 异步库:例如asyncioaiohttp,用于实现异步爬虫,提高爬取效率。

二、Python爬虫常用库

1. 请求库

  • requests:一个简洁而强大的HTTP库,支持HTTP连接保持和连接池、SSL证书验证、Cookies等。
  • aiohttp:一个基于asyncio的异步HTTP库,适合高并发的爬虫场景。

2. 解析库

  • BeautifulSoup:一个用于解析HTML和XML的库,简单易用,支持多种解析器。
  • lxml:一个高效的XML和HTML解析库,支持XPath和CSS选择器。
  • PyQuery:一个Python版的jQuery,语法与jQuery类似,易于上手。

3. 存储库

  • pandas:一个强大的数据分析库,提供数据结构和数据分析工具,支持多种文件格式。
  • SQLite:一个轻量级的数据库,支持SQL查询,适用于小型爬虫项目。

接下来,将通过7个Python爬虫的小案例,帮助大家更好地学习和理解Python爬虫的基础知识。以下是每个案例的简介和源代码:

案例1:爬取豆瓣电影Top250

这个案例使用BeautifulSoup库爬取豆瓣电影Top250的电影名称、评分和评价人数等信息,并将这些信息保存到CSV文件中。

import requests
from bs4 import BeautifulSoup
import csv# 请求URL
url = 'https://movie.douban.com/top250'
# 请求头部
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}# 解析页面函数
def parse_html(html):soup = BeautifulSoup(html, 'lxml')movie_list = soup.find('ol', class_='grid_view').find_all('li')for movie in movie_list:title = movie.find('div', class_='hd').find('span', class_='title').get_text()rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()writer.writerow([title, rating_num, comment_num])# 保存数据函数
def save_data():f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')global writerwriter = csv.writer(f)writer.writerow(['电影名称', '评分', '评价人数'])for i in range(10):url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='response = requests.get(url, headers=headers)parse_html(response.text)f.close()if __name__ == '__main__':save_data()

案例2:爬取猫眼电影Top100

这个案例使用正则表达式和requests库爬取猫眼电影Top100的电影名称、主演和上映时间等信息,并将这些信息保存到TXT文件中。

import requests
import re# 请求URL
url = 'https://maoyan.com/board/4'
# 请求头部
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}# 解析页面函数
def parse_html(html):pattern = re.compile('<p class="name"><a href=".*?" title="(.*?)" data-act="boarditem-click" data-val="{movieId:\\\\d+}">(.*?)</a></p>.*?<p class="star">(.*?)</p>.*?<p class="releasetime">(.*?)</p>', re.S)items = re.findall(pattern, html)for item in items:yield {'电影名称': item[1],'主演': item[2].strip(),'上映时间': item[3]}# 保存数据函数
def save_data():f = open('maoyan_top100.txt', 'w', encoding='utf-8')for i in range(10):url = 'https://maoyan.com/board/4?offset=' + str(i * 10)response = requests.get(url, headers=headers)for item in parse_html(response.text):f.write(str(item) + '\n')f.close()if __name__ == '__main__':save_data()

案例3:爬取全国高校名单

这个案例使用正则表达式和requests库爬取全国高校名单,并将这些信息保存到TXT文件中。

import requests
import re# 请求URL
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
# 请求头部
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}# 解析页面函数
def parse_html(html):pattern = re.compile('<tr class="alt">.*?<td>(.*?)</td>.*?<td><div align="left">.*?<a href="(.*?)" target="_blank">(.*?)</a></div></td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?</tr>', re.S)items = re.findall(pattern, html)for item in items:yield {'排名': item[0],'学校名称': item[2],'省市': item[3],'总分': item[4]}# 保存数据函数
def save_data():f = open('university_top100.txt', 'w', encoding='utf-8')response = requests.get(url, headers=headers)for item in parse_html(response.text):f.write(str(item) + '\n')f.close()if __name__ == '__main__':save_data()

相关文章:

Python爬虫原理以及3个小案例(源码)

一、爬虫原理 网络爬虫是一种用于自动获取网页内容的程序。它模拟用户浏览网页的过程&#xff0c;通过发送HTTP请求获取网页的源代码&#xff0c;并利用解析和提取技术来获取所需的数据。 1. HTTP请求与响应过程 爬虫向目标网站发送HTTP请求&#xff0c;请求包含URL、请求方…...

Vagrant配合VirtualBox搭建虚拟机

目录 前言一、软件下载及安装1.下载2.安装扩展&#xff1a; 二、创建一个虚拟机1.Vagrant官方镜像仓库 三、使用远程工具连接虚拟机1.修改相关配置文件 四、虚拟机克隆及使用1.通用配置2.简单搭建一个java环境3.克隆虚拟机1.重命名虚拟机&#xff08;可选&#xff09;2.打包指定…...

Elasticsearch 建议(Suggesters):实现自动补全和拼写检查

引言 在现代搜索引擎中&#xff0c;自动补全和拼写检查功能已成为提升用户体验的重要工具。Elasticsearch&#xff0c;作为一款强大的分布式搜索和分析引擎&#xff0c;提供了多种Suggesters API来帮助开发者实现这些功能。本文将详细介绍Elasticsearch中的四种主要Suggester—…...

部署过docker后,防火墙firewall与iptables的基本指令

一、iptables【无需stop docker服务】 如果服务器中部署了docker&#xff0c;优先选用iptables 1. 记录关闭docker中运行的mongoDB的27017端口&#xff1a; 由于docker与iptables存在配置规则&#xff0c;因此要修改docker相关端口的可访问性时需要使用下面的语句&#xff1a…...

华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别

RIP (Routing Information Protocol&#xff0c;路由信息协议&#xff09; RIP 是一个比较早期的协议&#xff0c;在实际部署中较少使用&#xff0c;但RIP 协议的机制是所有矢量跻由协议的基础&#xff0c;因此&#xff0c;掌握 RIP 协议的工作原理对研究矢量路由协议有重要的…...

深度学习pytorch多机多卡网络配置桥接方法

1 安装pdsh&#xff08;Parallel Distributed Shell&#xff09; sudo apt install pdsh sudo -s # 切换超级用户身份 …...

服务器信息获取工具

功能介绍 SSH连接到远程服务器&#xff1a; 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口&#xff08;默认22&#xff09;。 工具会尝试连接到远程服务器&#xff0c;并在连接失败时显示错误信息。 运行命令并返回输出&#xff1a; 工具可以在远程服务器上运…...

uniapp 防止重复提交数据

当用户快速点击按钮时候。我们可以统一在 请求拦截 中做防止重复提交数据的处理 以下是使用uview2封装的request请求 import { autoLogin, getUserInfo } from /utils/method.js import { refreshToken } from /api/login.js const serversUrl require(./serversUrl.js).ser…...

线程池工具类

线程池简述 为什么需要一个线程池工具类&#xff1f; 答&#xff1a;整个项目&#xff0c;用到线程执行任务的地方很多&#xff0c;不可能哪里用到就在那里直接new一个线程执行&#xff0c;这样资源得不到重复利用&#xff0c;一旦线程过多就会导致内存不足。 线程池的好处是…...

印尼“支付宝” DANA 如何借力 OceanBase 实现3个“关键零”

当前&#xff0c;移动支付在东南亚正迅猛发展&#xff0c;据谷歌、淡马锡与贝恩公司发布的报告预测&#xff0c;东盟地区蓬勃兴起的移动支付市场有望在2030年突破至2万亿美元的交易规模。 在此背景下&#xff0c;DANA作为印尼——东南亚最大经济体中的一员&#xff0c;秉持着推…...

2018-2022 年份微博签到数据集

前阵子接到一个实验室老师的需求&#xff0c;采集五年前&#xff08;2024-52019&#xff09;过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可&#xff0c;这次虽然时间跨度只有两个月&#xff0c;但是由于时间太过久远&#xff0c;但是颇费了一…...

Avalonia开发实践(二)——开发带边框的Grid

一、开发背景 在实际开发工作中&#xff0c;常常会用到Grid进行布局。为了美观考虑&#xff0c;会给每个格子加上边框&#xff0c;如下图&#xff1a; 原生的Grid虽然有ShowGridLines属性可以控制显示格子之间的线&#xff0c;但线的样式不能定义&#xff0c;可以说此功能非常…...

Java泛型的定义与运用

泛型 泛型的作用从使用层面上来说是统一数据类型&#xff0c;防止将来的数据转换异常。从定义层面上来说&#xff0c;定义带泛型的类&#xff0c;方法等&#xff0c;将来使用的时候给泛型确定什么类型&#xff0c;泛型就会变成什么类型&#xff0c;凡是涉及到泛型的都会变成确…...

Java如何自定义注解及在SpringBoot中的应用

注解 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元素进行说…...

微软 Edge 浏览器全解析

微软 Edge 是微软推出的一个现代化浏览器,继承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改进。下面是对微软 Edge 浏览器的详细解析,包括其特点、安装、配置和常见问题的解答。 微软 Edge 浏览器的特点 基于 Chromium 内核 Edge 浏览…...

C++ 八股(1)

C语言中strcpy为什么不安全&#xff1f;如何解决&#xff1f; 主要原因是缺乏对输入长度的边界检查&#xff0c;容易导致缓冲区溢出漏洞。 解决&#xff1a;可以使用strncpy函数替代&#xff0c;或者在程序最顶端加入代码段 #define _CRT_SECURE_NO_WARNINGS 缓冲区溢出 …...

超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记

PCAP01超高精电容传感芯片STM32LabView可视化 文章目录 PCAP01超高精电容传感芯片STM32LabView可视化一、PCAP01介绍1.1、PCAP01引脚定义1.2、电容测量1.3、温度测量1.4、PCAP典型测试电路 二、PCAP01的STM32驱动2.1、SPI协议配置2.2、PCAP01浮空电容测量内部温度测量操作流程 …...

5.更多

发现一个项目与 MkDocs 类似的项目 PyMdown 拓展文档 &#xff0c;等待探索。 1.排版模仿 以下网站使用 MkDocs 构建 Material for MkDocs 的美化 - Charles Les Notebook (charleschile.com) Documentation - Home Assistant (home-assistant.io) Godot Docs – master bra…...

ConditionalOnJndi注解使用介绍、应用场景以及示例代码

概述 ConditionalOnJndi 是 Spring Framework 中的一个条件注解&#xff0c;用于在特定的 JNDI (Java Naming and Directory Interface) 环境条件下决定是否创建一个 bean 或配置一个 bean。JNDI 是 Java EE 规范中定义的一种用于访问命名和目录服务的 API&#xff0c;它允许 …...

Spring Cloud 引入

1.单体架构&#xff1a; 定义&#xff1a;所有的功能实现都打包成一个项目 带来的后果&#xff1a; ①后端服务器的压力越来越大&#xff0c;负载越来越高&#xff0c;甚至出现无法访问的情况 ②业务越来越复杂&#xff0c;为了满足用户的需求&#xff0c;单体应用也会越来越…...

自定义波形图View,LayoutInflater动态加载控件保存为本地图片

效果图&#xff1a; 页面布局&#xff1a; <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:la…...

每日一道算法题 求最小公倍数

题目 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) Python 辗转相除法 dividend,divisormap(int,input().split()) #被除数&#xff0c;除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…...

【OCC学习18】三维几何对象工具包:TKG3d

【OCC学习18】三维几何对象工具包&#xff1a;TKG3d loveoobaby 已于 2022-08-26 10:10:32 修改 阅读量1.2k 收藏 10 点赞数 1 分类专栏&#xff1a; OpenCascade学习笔记 文章标签&#xff1a; 学习 版权 OpenCascade学习笔记 专栏收录该内容 24 篇文章60 订阅 订阅专栏…...

【Unix】SunOS/Oracle Solaris系统介绍

一.SunOS系统介绍 SunOS 是由 Sun Microsystems 开发的 Unix 操作系统。它最初是为 Sun 的 SPARC 架构计算机设计的&#xff0c;后来也支持了 Intel x86 架构。SunOS 是基于 UNIX System V 4.1 版本&#xff0c;并且随着时间的发展&#xff0c;SunOS 经历了多个版本迭代&#…...

氛围感视频素材高级感的去哪里找啊?带氛围感的素材网站库分享

亲爱的创作者们&#xff0c;大家好&#xff01;今天我们来聊聊视频创作中至关重要的一点——氛围感。一个好的视频&#xff0c;不仅要有视觉冲击力&#xff0c;还要能够触动观众的情感。那我们应该去哪里寻找这些充满氛围感且高级的视频素材呢&#xff1f;别急&#xff0c;我这…...

基于Java的学生选课系统

第1章 系统概述 1.1概述 背景&#xff1a;随着计算机网络技术的发展&#xff0c;Web 数据库技术已成为应用最为广泛的网站架构基础技术。学生选课系统作为教育单位不可缺少的部分&#xff0c;其内容对于学校的决策者和管理者至关重要。传统的人工管理方式存在效率低、保密性差等…...

802.11漫游流程简单解析与笔记_Part2_05_wpa_supplicant如何通过nl80211控制内核开始关联

最近在进行和802.11漫游有关的工作&#xff0c;需要对wpa_supplicant认证流程和漫游过程有更多的了解&#xff0c;所以通过阅读论文等方式&#xff0c;记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…...

STM32的 DMA(直接存储器访问) 详解

STM32的DMA&#xff08;Direct Memory Access&#xff0c;直接存储器存取&#xff09;是一种在单片机中用于高效实现数据传输的技术。它允许外设设备直接访问RAM&#xff0c;不需要CPU的干预&#xff0c;从而释放CPU资源&#xff0c;提高CPU工作效率&#xff0c;本文基于STM32F…...

14-65 剑和诗人39 - 打造你自己的 Devin

​​​​​ 绝密 Devin 架构 更具体地说,构建您自己的 AI 代理。 Devin 使用 GPT-4 ,而人们已经开始用 Claude-3-Opus 构建替代方案 Devin 的 UI 体验更好。 例如,它甚至看不到浏览器,但它确实存在于用户面前 此外,你可以随时与它“交谈”,就像与人交谈一样,它会在后…...

JavaScript 把CSDN博客内容存成PDF

F12 - 控制台 -命令行 输入执行&#xff1a;允许粘贴输入执行代码&#xff1a; (function () {use strict;var articleBox $("div.article_content");articleBox.removeAttr("style");var head_str "";var foot_str "";var older…...