爬虫(四):案例:爬取猫眼电影网站+爬取股吧网站+爬取药品网站

news/2024/5/9 16:21:01/文章来源:https://blog.csdn.net/qq_40558166/article/details/102827785

文章目录

  • 爬取网站的流程
    • 案例一:爬取猫眼电影
    • 案例二:爬取股吧
    • 案例三:爬取某药品网站

爬取网站的流程

  • 确定网站的哪个url是数据的来源
  • 简要分析一下网站结构,查看数据存放在哪里
  • 查看是否有分页,并解决分页的问题
  • 发送请求,查看response.text是否有我们所需要的数据
  • 筛选数据

案例一:爬取猫眼电影

在这里插入图片描述
爬取目标:爬取前一百个电影的信息

import re, requests, jsonclass Maoyan:def __init__(self, url):self.url = urlself.movie_list = []self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}self.parse()def parse(self):# 爬去页面的代码# 1.发送请求,获取响应# 分页for i in range(10):url = self.url + '?offset={}'.format(i * 10)response = requests.get(url, headers=self.headers)'''1.电影名称2、主演3、上映时间4、评分'''# 用正则筛选数据,有个原则:不断缩小筛选范围。dl_pattern = re.compile(r'<dl class="board-wrapper">(.*?)</dl>', re.S)dl_content = dl_pattern.search(response.text).group()dd_pattern = re.compile(r'<dd>(.*?)</dd>', re.S)dd_list = dd_pattern.findall(dl_content)# print(dd_list)movie_list = []for dd in dd_list:print(dd)item = {}# ------------电影名字movie_pattern = re.compile(r'title="(.*?)" class=', re.S)movie_name = movie_pattern.search(dd).group(1)# print(movie_name)actor_pattern = re.compile(r'<p class="star">(.*?)</p>', re.S)actor = actor_pattern.search(dd).group(1).strip()# print(actor)play_time_pattern = re.compile(r'<p class="releasetime">(.*?):(.*?)</p>', re.S)play_time = play_time_pattern.search(dd).group(2).strip()# print(play_time)# 评分score_pattern_1 = re.compile(r'<i class="integer">(.*?)</i>', re.S)score_pattern_2 = re.compile(r'<i class="fraction">(.*?)</i>', re.S)score = score_pattern_1.search(dd).group(1).strip() + score_pattern_2.search(dd).group(1).strip()# print(score)item['电影名字:'] = movie_nameitem['主演:'] = actoritem['时间:'] = play_timeitem['评分:'] = score# print(item)self.movie_list.append(item)# 将电影信息保存到json文件中with open('movie.json', 'w', encoding='utf-8') as fp:json.dump(self.movie_list, fp)if __name__ == '__main__':base_url = 'https://maoyan.com/board/4'Maoyan(base_url)with open('movie.json', 'r') as fp:movie_list = json.load(fp)print(movie_list)

案例二:爬取股吧

在这里插入图片描述
爬取目标: 爬取前十页的阅读数,评论数,标题,作者,更新时间,详情页url

import json
import reimport requestsclass GuBa(object):def __init__(self):self.base_url = 'http://guba.eastmoney.com/default,99_%s.html'self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}self.infos = []self.parse()def parse(self):for i in range(1, 13):response = requests.get(self.base_url % i, headers=self.headers)'''阅读数,评论数,标题,作者,更新时间,详情页url'''ul_pattern = re.compile(r'<ul id="itemSearchList" class="itemSearchList">(.*?)</ul>', re.S)ul_content = ul_pattern.search(response.text)if ul_content:ul_content = ul_content.group()li_pattern = re.compile(r'<li>(.*?)</li>', re.S)li_list = li_pattern.findall(ul_content)# print(li_list)for li in li_list:item = {}reader_pattern = re.compile(r'<cite>(.*?)</cite>', re.S)info_list = reader_pattern.findall(li)# print(info_list)reader_num = ''comment_num = ''if info_list:reader_num = info_list[0].strip()comment_num = info_list[1].strip()print(reader_num, comment_num)title_pattern = re.compile(r'title="(.*?)" class="note">', re.S)title = title_pattern.search(li).group(1)# print(title)author_pattern = re.compile(r'target="_blank"><font>(.*?)</font></a><input type="hidden"', re.S)author = author_pattern.search(li).group(1)# print(author)date_pattern = re.compile(r'<cite class="last">(.*?)</cite>', re.S)date = date_pattern.search(li).group(1)# print(date)detail_pattern = re.compile(r' <a href="(.*?)" title=', re.S)detail_url = detail_pattern.search(li)if detail_url:detail_url = 'http://guba.eastmoney.com' + detail_url.group(1)else:detail_url = ''print(detail_url)item['title'] = titleitem['author'] = authoritem['date'] = dateitem['reader_num'] = reader_numitem['comment_num'] = comment_numitem['detail_url'] = detail_urlself.infos.append(item)with open('guba.json', 'w', encoding='utf-8') as fp:json.dump(self.infos, fp)gb=GuBa()

案例三:爬取某药品网站

在这里插入图片描述
爬取目标:爬取五十页的药品信息

'''要求:抓取50页字段:总价,描述,评论数量,详情页链接用正则爬取。'''
import requests, re,jsonclass Drugs:def __init__(self):self.url = url = 'https://www.111.com.cn/categories/953710-j%s.html'self.headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'}self.Drugs_list=[]self.parse()def parse(self):for i in range(51):response = requests.get(self.url % i, headers=self.headers)# print(response.text)# 字段:药名,总价,评论数量,详情页链接Drugsul_pattern = re.compile('<ul id="itemSearchList" class="itemSearchList">(.*?)</ul>', re.S)Drugsul = Drugsul_pattern.search(response.text).group()# print(Drugsul)Drugsli_list_pattern = re.compile('<li id="producteg(.*?)</li>', re.S)Drugsli_list = Drugsli_list_pattern.findall(Drugsul)Drugsli_list = Drugsli_list# print(Drugsli_list)for drug in Drugsli_list:# ---药名item={}name_pattern = re.compile('alt="(.*?)"', re.S)name = name_pattern.search(str(drug)).group(1)# print(name)# ---总价total_pattern = re.compile('<span>(.*?)</span>', re.S)total = total_pattern.search(drug).group(1).strip()# print(total)# ----评论comment_pattern = re.compile('<em>(.*?)</em>')comment = comment_pattern.search(drug)if comment:comment_group = comment.group(1)else:comment_group = '0'# print(comment_group)# ---详情页链接href_pattern = re.compile('" href="//(.*?)"')href='https://'+href_pattern.search(drug).group(1).strip()# print(href)item['药名']=nameitem['总价']=totalitem['评论']=commentitem['链接']=hrefself.Drugs_list.append(item)
drugs = Drugs()
print(drugs.Drugs_list)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_858726.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第12篇-User-Agent大全和免费代理网站大全

提前声明:该专栏涉及的所有案例均为学习使用,如有侵权,请联系本人删帖! 文章目录 一、前言二、<超实用>对请求头参数的快速加引号三、对免费代理网站进行整理四、常用的web端ua五、常用的APP端ua一、前言 爬虫基础篇的实用篇,我们对常用的手机和电脑浏览器User-Agen…

第29篇-某1688网站sign参数分析【2023-02-02】

提前声明:该专栏涉及的所有案例均为学习使用,如有侵权,请联系本人删帖! 文章目录 一、前言二、网站分析三、参数分析三、完整代码一、前言 旧网站噶了,把这个网站换成个简单的js加密,我们分析一下。 二、网站分析 网站: aHR0cHM6Ly9zYWxlLjE2ODguY29tL2ZhY3RvcnkvaG9…

jquery网站功能引导用户提示操作

jquery制作最近网站比较流行的网站页面功能引导用户&#xff0c;提示用户网站的主要功能和操作。当用户首次进入网站时会提示网站功能引导&#xff0c;提示用户操作。写入cookie浏览器缓存&#xff0c;下次不重复提示网站页面功能引导。

大型网站的灵魂——性能

摘要&#xff1a;有人说性能就是访问速度快慢&#xff0c;这是最直观的说法&#xff0c;也是用户的真实体验。一个用户从输入网址到按下回车键&#xff0c;看到网页的快慢&#xff0c;这就是性能。对于我们来说&#xff0c;需要去挖掘这个过程&#xff0c;因为这决定我们怎么去…

大型网站系统架构的演化

前言 一个成熟的大型网站&#xff08;如淘宝、京东等&#xff09;的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务功能的扩展逐渐演变完善的&#xff0c;在这个过程中&#xff0c;开发模式、技术架构、设计…

用PS去设计食品网站的展示

首先点击PS,进入PS以后我们先CtrlN创建一个宽度为25cm,高度135cm分辨率为300的图层, 创建以后我们就往图层里面放东西或者是自己已经做好的网页,还有不能让背景太过于单调,我们就往图层里面做装饰,至于放什么装饰就要看自己做的东西或者是网页是什么类型的,颜色不能太过于鲜艳还…

食品网站和学校官网的对比

首页我把食品的网页和学校的网页放进来进行对比和区分,学校官网都是严谨的规规矩矩的,而食品官网呢可以各式各样,如果食品官网和学校官网一样的话就不怎么好看了,而且食品类型的官网或者是网站都是主题性和偏人喜欢的类型,如果学校官网和食品类型的官网一样的话就会给人觉得学校…

分析自己做的后台网站

一, 布局 首先布局要有规整&#xff0c;然后界面要整洁还有要统一画板的大小&#xff0c;再然后就要适配在设计中&#xff0c;要清楚明白布局然后根据布局去添加东西或者是文字&#xff0c;然后就是排版在设计中排版也是非常重要的&#xff0c;还有排的版要根据具体情况判断是…

总结分析icon和食品网站

icon总结&#xff1a; 设计思路&#xff08;灵感来源于漫威电影里面的蜘蛛侠&#xff09;我利用了休息时间的时候因为当时没事做我自己也不知道要干嘛&#xff0c;然后就去网上玩了一下突然看到了蜘蛛侠的图片&#xff0c;上课的时候就开始了一系列的想跟设计最后就选定了做蜘蛛…

后台网站总结

后台网站也是我们的最后一个课程了&#xff0c;在学习后台的时候有点懵不知道是什么&#xff0c;然后老师就给了我们一些临摹的后台网站让我们去临摹&#xff0c;临摹的时候挺有意思的&#xff0c;然后老师还叫我们去收集后台网站的图片让我们去学习别人做的后台网站的优秀的地…

制作金融后台网站

首先进去PS,下面的话就不多说了,新建一个画板,画板的大小为:宽1024px,高1152px,分辨率为:72.然后把画板的颜色白色改为灰色.灰色的数字为:ebebeb. 2.下面把顶部和旁边的做出来,画一个宽164px和高590px的矩形颜色为蓝色,颜色的数字为:ebebeb.上面的顶部也是一样的,长1026和高56p…

Laravel+Nginx轻松实现读写分离、负载均衡,网站并发能力提升N倍

前言&#xff1a; 随着互联网应用的广泛普及&#xff0c;海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用&#xff0c;每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。 为此&#xff0c;我们需要…

生成网站后,在浏览器中浏览时只能出现网页中的内容,不能与数据库相连接的部分?

生成网站&#xff0c;在浏览器中输入http://localhost/oa后&#xff0c;出现以下内容&#xff1a; &#xff0c;解决办法&#xff1a; &#xff0c;解决这个问题后&#xff0c;继续浏览又出现下面的错误&#xff1a; &#xff0c;而他的解决方案是&#xff1a; 连接字符串&am…

在发布网站后,出现“未将对象引用设置到对象的实例”的错误时,是什么原因?

这个有两个原因&#xff1a;一、在IIS中没有设置“默认文档”&#xff1b;二、session没有赋值。 这两个原因是在做项目时发现的&#xff0c;可能还有其它的。

博客网站软件需求分析说明书-软件工程作业

1.导言 1.1编写目的 该文档描述了个人博客网站的功能和性能的要求&#xff0c;将作为对该项目在概要设计阶段的设计输入。 本文档的预期读者包括: 1.设计开发人员 2.项日管理人员 3.测试人员 4.用户 1.2项目范围 该文档的月的是解决整个项月系统中“做仁么”的问题。对于开…

【学习笔记】分布式爬虫打造搜索引擎|笔记02|scrapy爬取博客网站

scrapy框架 Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 其可以应用在数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的&#xff0c; 也可以应用在获取API所返回的数据(例…

Nginx配置SSL证书部署HTTPS网站

一、什么是 SSL 证书&#xff0c;什么是 HTTPS SSL 证书是一种数字证书&#xff0c;它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道&#xff0c;从而实现&#xff1a; 1、数据信息在客户端和服务器之间的加密传输&#xff0c;保证双方传递信息的安…

兄弟们,我打算抠100个网站JS加密代码召唤,一个也跑不掉,这次轮到小虎牙

本次研究虎牙登录密码加密JS代码&#xff0c;难度不大&#xff0c;依然建议各位读者参考文章独自完成&#xff0c;实在抠不出来再参考这里的完整代码&#xff1a;从今天开始种树 准备 打开网站虎牙&#xff0c;点击登录标签&#xff0c;跳到登录界面&#xff1a; 按下F12&am…

服务端编程(三)- 背景知识 - web服务器 HTTP服务器 application 服务器 动态网站 静态网站 域名 URL 详解

文章目录 前言 &#xff65;ᴗ&#xff65;概述web serverHTTP serverapplication server 应用服务器动态网站 静态网站总结 ◡ 前言 &#xff65;ᴗ&#xff65; 本篇将简化的几个简单却又容易混淆的概念 网站 网页 搜索引擎 web服务器 本文可以带给你… 网页的概念网站的概念…

服务端编程(九)- Django - 创建网站的基本骨架 创建你的主页

文章目录 前言 &#xff65;ᴗ&#xff65;url参数制定url规则制定url规则什么时候需要获取url&#xff1f;为什么我们操作catalog的url 而不是根目录的url&#xff1f;服务器如何响应——view.py模板的制作render函数的运用彩蛋总结 ◡ 前言 &#xff65;ᴗ&#xff65; 本节…