不会吧,学过爬虫连这个网站都爬不了?那Python岂不是白学了

news/2024/5/20 22:48:24/文章来源:https://blog.csdn.net/m0_59236602/article/details/123112885

本文内容

  1. 系统分析目标网页
  2. html标签数据解析方法
  3. 海量图片数据一键保存

环境介绍

  • python 3.8
  • pycharm

模块使用

  • requests >>> pip install requests
  • parsel >>> pip install parsel
  • time 时间模块 记录运行时间

通用爬虫

导入模块

import requests  # 数据请求模块 第三方模块 pip install requests
import parsel  # 数据解析模块 第三方模块 pip install parsel
import re  # 正则表达式模块

请求数据

url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}html'
headers \= {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'
}
response \= requests.get(url=url, headers=headers)
# <Response \[200\]> response 对象 200状态码 表示请求成功

解析数据

解析速度 bs4 解析速度会慢一些,如果你想要对于字符串数据内容,直接取值,只能正则表达式

selector = parsel.Selector(response.text) # 把获取下来html字符串数据内容 转成 selector 对象
title\_list = selector.css('.ui.image.lazy::attr(title)').getall()
img\_list \= selector.css('.ui.image.lazy::attr(data-original)').getall()
# 把获取下来的这两个列表 提取里面元素 一一提取出来
# 提取列表元素 for循环 遍历
for title, img\_url in zip(title\_list, img\_list):title \= re.sub(r'\[\\/:\*?"<>|\\n\]', '\_', title)# 名字太长 报错img\_name = img\_url.split('.')\[-1\]   # 通过split() 字符串分割的方法 根据列表索引位置取值img\_content = requests.get(url=img\_url).content # 获取图片的二进制数据内容

保存数据

with open('img\\\\' + title + '.' + img\_name, mode='wb') as f:f.write(img\_content)
print(title)

共耗时:61秒

多线程爬虫

发送求情

def get\_response(html\_url):headers \= {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'}response \= requests.get(url=html\_url, headers=headers)return response

获取图片url地址,以及图片名字

def get\_img\_info(html\_url):response \= get\_response(html\_url)selector \= parsel.Selector(response.text)  # 把获取下来html字符串数据内容 转成 selector 对象title\_list = selector.css('.ui.image.lazy::attr(title)').getall()img\_list \= selector.css('.ui.image.lazy::attr(data-original)').getall()zip\_data \= zip(title\_list, img\_list)return zip\_data

保存数据

def save(title, img\_url):title \= re.sub(r'\[\\/:\*?"<>|\\n\]', '\_', title)# 名字太长 报错img\_name = img\_url.split('.')\[-1\]  # 通过split() 字符串分割的方法 根据列表索引位置取值img\_content = requests.get(url=img\_url).content  # 获取图片的二进制数据内容with open('img\\\\' + title + '.' + img\_name, mode='wb') as f:f.write(img\_content)print(title)

主函数

def main(html\_url):zip\_data \= get\_img\_info(html\_url)for title, img\_url in zip\_data:save(title, img\_url)

入口

if \_\_name\_\_ == '\_\_main\_\_':start\_time \= time.time()exe \= concurrent.futures.ThreadPoolExecutor(max\_workers=10)for page in range(1, 11):url \= f'https://fabiaoqing.com/biaoqing/lists/page/{page}html'exe.submit(main, url)exe.shutdown()end\_time \= time.time()use\_time \= int(end\_time - start\_time)print('程序耗时: ', use\_time)

共耗时:19秒


这里我为大家准备了一份针对零基础的Python学习资料,有兴趣的同学可以看看哦。

「 Python经验分享 」

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家免费分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
9f49b566129f47b8a67243c1008edf79.png

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

8c4513c1a906b72cbf93031e6781512b.png

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

afc935d834c5452090670f48eda180e0.png

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

252731a671c1fb70aad5355a2c5eeff0.png

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

6c361282296f86381401c05e862fe4e9.png

d2d978bb523c810abca3abe69e09bc1a.png

这份完整版的Python全套学习资料已经上传CSDN
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

请添加图片描述

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

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

相关文章

工程师英语和计算机证书查询,点击进入国家硬件维修工程师证书查询网站

工程师证书查询网站人力资源社会保障部指定查询国家职业资格证书的唯一官方网站。涵盖全国各省市、各行业、各央企颁发的证书。电脑硬件维修工程师网上能查看国家工信部硬件维修工程师证书查询网址&#xff1a;http://www.ceiaec.org/index.htm工程师证书编号在网上怎么查询如果…

根目录_怎样找到网站根目录?

什么是根目录&#xff1f;什么是根目录&#xff1f;根目录&#xff0c;或根文件夹&#xff0c;是顶层目录一个的文件系统。目录结构可以直观地表示为上下颠倒的“树”&#xff0c;因此术语“ root ”代表顶层。所有其它目录、子目录、目录的“分支”等都储存在根目录中。尽管所…

网站服务器怎么理解,http请求的原理怎么理解

(1)是请求方法&#xff0c;GET和POST是HTTP中最常用的方法&#xff0c;除了DELETE、HEe、OPT、NS、PUT和Sea之外。但目前大多数浏览器仅支持GET和POST。它提供了一个HiddenHtyMethodFilter&#xff0c;可以让你通过“_method”的表单参数来指定这些特殊的HTTP方法(实际上&#…

Tornado 网站demo 二

连接数据库 methods 中建立一个文件 db.py 分别建立起连接对象和游标对象 #!/usr/bin/env Python # codingutf-8import pymysql conn pymysql.connect(host"localhost", user"root", passwd"123456", db"testdb", port3306, charset&…

【redux】详解react/redux的服务端渲染:页面性能与SEO

亟待解决的疑问 为什么服务端渲染首屏渲染快&#xff1f;&#xff08;对比客户端首屏渲染&#xff09; react客户端渲染的一大痛点就是首屏渲染速度慢问题&#xff0c;因为react是一个单页面应用&#xff0c;大多数的资源需要在首次渲染前就加载好&#xff0c;这较大程度地拖慢…

顶级白嫖!!!八个python免费自学网站一周搞定python(抓紧收藏)。。

导读 人工智能必将到来&#xff0c;在那个时代&#xff0c;我们的工作方式会发生很大的改变&#xff0c;尤其是Python都已经进入了中小学教育的大纲&#xff0c;在智能为主的时代&#xff0c;Python就像现在的电脑一样&#xff0c;每个人工作中必备的工作技能&#xff0c;学会…

新手学电脑入门教程_适合新手程序员学习编程的10个常用网站,超实用

我们很多程序员刚学习时都到处找资源&#xff0c;今天小编我把最常用的10个编程网站分享给大家&#xff0c;大家只要经常浏览这10个网站&#xff0c;学好编程足够了。1、 Googlehttps://www.google.com/2、Stackoverflowhttp://stackoverflow.com/3、githubhttps://github.com/…

页面布局让footer居页面底部_谷歌SEO的网站页面内链布局3大方法!

在谷歌SEO里&#xff0c;网站中内链的重要性不言而喻。对于用户来说&#xff0c;合理的网站内链可以方便用户读取有用的信息&#xff0c;提升用户粘性&#xff0c;降低跳出率。从谷歌搜索引擎来说&#xff0c;合理的网站内链&#xff0c;不仅能够吸引谷歌搜索引擎蜘蛛的抓取&am…

阿里云云主机搭建网站攻略 - 云翼计划

阿里云服务器&#xff08;云主机&#xff09;搭建网站攻略 - 云翼计划 提示&#xff1a;此搭建攻略为2017版本&#xff0c;阿里云未跟新前。 最新搭建攻略请前往 Amaya丶夜雨博客 / 最新个人博客 https://www.amayaliu.cn 支持一下哦&#xff0c;谢谢。&#xff08;9.5一…

在网站中添加 https 百度分享

博客地址&#xff1a;http://www.moonxy.com 一、前言 百度分享是一个提供网页地址收藏、分享及发送的 WEB2.0 按钮工具&#xff0c;借助百度分享按钮&#xff0c;网站的浏览者可以方便的分享内容到人人网、开心网、QQ空间、新浪微博等一系列 SNS 站点。 网站主可以在百度分享网…

python3.6使用django-oscar搭建商店网站_使用Django搭建网站实现商品分页功能

装好Django&#xff0c;写好index.html后&#xff0c;可以展示网页了。但是这只是静态页面&#xff0c;没有关联数据库&#xff0c;也不能分页展示商品信息。本节连接mongodb数据库(事先已准备好数据)&#xff0c;从中取出几十条商品信息&#xff0c;每页展示4个商品信息&#…

如何利用SEO赚钱(一个月入万元的简单网站)

有人说做SEO不赚钱&#xff0c;而实际上只要你选对了项目&#xff0c;就算你seo做的非常烂&#xff0c;那么一样是可以赚到钱的&#xff0c;小编试着做了一个这么简单的网站&#xff0c;一个月的时间&#xff0c;收获了不少。 没错&#xff0c;小编做的是一个辅助工具网站&…

零基础建站教程(二)宝塔面板的使用和CMS的安装

宝塔面板相关操作 修改用户名和密码 接着上一节&#xff0c;我们已经安装好了宝塔面板&#xff0c;接下来首先一定要修改你的用户名和密码&#xff0c;选择面板设置进行修改。 添加网站 选择网站&#xff0c;点击添加&#xff0c;这里填写自己的域名&#xff08;必须要有域名&a…

路由器架设虚拟服务器让外网访问到本地网站

路由器架设虚拟服务器让外网访问到本地网站 https://jingyan.baidu.com/article/6f2f55a18e7998b5b93e6c8b.html 分步阅读 此文目的演示如何通过路由器设置&#xff0c;让外网可以访问到内网中的某一台电脑&#xff0c;也可以是电脑上架设的本地网站。 此方法只适合同网访…

jQuery-在网站上注册新账号时,“同意并接受”效果的实现

大家都知道&#xff0c;当我们在一个新的网站或者应用上注册账号时&#xff0c;必须先要同意它们的规章制度&#xff0c;才可以进行下一步操作&#xff0c;下面我们就分别用DOM对象和jQuery对象来简单实现以下。 效果描述&#xff1a;当鼠标点击文字前面的复选框时&#xff0c;…

linux 下 关于xampp 的apache 修改默认端口和 修改默认网站路径 以及phpadmin外网访问方法

一&#xff1a;修改默认端口并且对外网访问 打开默认安装路径下的httpd.conf文件 修改 Listen 后需要的端口&#xff08;默认为80&#xff09; 二&#xff0c;设置对外访问 修改目录的访问权限如下&#xff08;大概212行左右&#xff09; 打开默认安装目录下 下图文件 修改目录…

latex 插入网站连接_搞定LaTeX论文中的表格

论文中的表格制作一直是令人头疼的事情&#xff0c;直到我遇见了这个Excel插件。在此之前&#xff0c;我用过一些其他的小工具&#xff0c;例如在线的latex表格生成器 以及离线的LaTable软件 。他们虽然部分解决了手动写latex表格的麻烦&#xff0c;但是他们都有一个问题&#…

zblog插件 php,ZBlogSEO插件

更新方法&#xff1a;停用插件->更新插件->启用插件做好网站SEO一直是站长们的愿望&#xff0c;可是网站SEO需要注意的地方太多&#xff0c;一个不小心被百度K了都不知道怎么回事。这款ZBlogSEO插件则可以减轻你的优化负担&#xff0c;让网站排名更靠前。插件功能&#x…

【日常】某B视频网站模拟登录尝试

2019.04.07 更新 清明把手头事情大致也办得差不多了&#xff0c;接下来就要开始忙课程上的项目了。本来打算今晚开始把tensorflow跟pytorch捡起来赶紧复习一下的了&#xff0c;可惜有时候人就是贱骨头&#xff0c;还是想要做一些自己“更感兴趣”的事情。选择了某B视频网站的登…

在群晖上使用docker部署Django网站全记录

安装Docker映像 打开Docker应用&#xff0c;选择注册表&#xff0c;搜索ngix&#xff0c;双击下载 进入映像&#xff0c;双击修改信息 点击高级设置&#xff0c;将docker内路径和nas内路径相关联 设置端口号 这时候就可以在容器那一栏看到paper_pro了&#xff0c;同时在…