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

爬虫小白看过来!详细的Python爬虫分析和案例展示

前言

爬虫需要哪些 (文末送读者福利)

1、爬虫架构

(1)爬虫调度器主要配合调用其他四个模块。所谓调度,就是调用其他模板。

(2)URL管理器负责管理URL链接。URL链接分为爬行链接和未爬行链接,需要URL管理器来管理。同时,它还为获取新的URL链接提供了接口。

(3)HTML下载器是下载要抓取的页面的HTML。

(4)HTML解析器是从HTML源代码中获取爬行的数据,同时向URL管理器发送新的URL链接,并向数据存储器发送处理后的数据。

(5)数据存储器是将HTML下载器发送的数据存储在本地。

2、爬虫原理

在编写python爬虫程序时,只需要做以下两件事:

发送GET请求,获取HTML

解析HTML,获取数据

3、使用ip代理

使用Python爬虫时,经常会遇到有反爬机制的网站。我们可以通过伪装headers爬行,但网站仍然可以获得您的ip,从而禁止您的ip爬行信息。

爬虫为什么能快速爬取

python爬虫是最方便快捷获取数据的方法,不过很多小伙伴还没有切实地感受过。爬行数据基本上通过网页URL获得该网页的源代码,根据源代码筛选必要的信息。

1、爬虫的准备

requests:获取网页源代码

lxml:得到网页源代码中的指定数据

2、爬虫快速的原因

requests可以很方便地让我们得到网页的源代码网页,同时lxml能够很快来筛选出我们所需要的信息。

3、完整代码实例

import requests
import lxml

html = requests.get(“https://coder-lida.github.io/”)
print (html.text)

在这里插入图片描述

爬虫爬取网页

1、为什么需要用爬虫?

为其他程序提供数据源,如搜索引擎(百度、Google等)、数据分析、大数据等等。

2、python爬虫设计思路

(1)、首先确定需要爬取的网页URL地址 ;

(2)、通过HTTP协议来获取对应的HTML页面 ;

(3)、提取html页面里的有用数据 ;

(4)、如果是需要的数据就保存起来,如果是其他的URL,那么就执行第二步。

3、python爬虫实例:爬取网页新闻内容

(1)、确定爬取网页内容的网络地址

https://k.sina.com.cn/article_6192937794_17120bb42020015u42.html?from=health

(2)、实施爬虫代码

import requests
from bs4 import BeautifulSoup
res =requests.get(‘https://k.sina.com.cn/article_6192937794_17120bb42020015u42.html?from=health’)
res.encoding=‘utf-8’

soup=BeautifulSoup(res.text, ‘html.parser’)
title=soup.select(‘#artibody’)[0].text

print(title)

以上就是python爬虫爬取网页新闻内容的简单实现,是不是很简单的,快尝试看看吧~更多python爬虫学习推荐:python爬虫教程。

4、解决网站访问频次过高问题

现在很多网站对异常用户访问网站频次过高设置了安全访问机制。在这个时候,如果你想继续访问这个网站,HTTP代理ip

非常重要。

当前ip地址有限,可以更改新的ip地址,保证爬虫的顺利进行。

推荐使用优质的代理ip资源,保证爬虫程序的顺利进行。

实战案例——爬去汽车之家网站上的图片
在这里插入图片描述
随着生活水平的提高和快节奏生活的发展。汽车开始慢慢成为人们的必需品,浏览各种汽车网站便成为购买合适、喜欢车辆的前提。例如汽车之家网站中就有最新的报价和图片以及汽车的相关内容,是提供信息最快最全的中国汽车网站。本文介绍python爬虫爬取汽车之家网站上的图片的思路和具体演示代码。

一、爬取汽车之家网站上的图片思路分析

1、分析页面,确认图片的url是否在网页源码。

2、确认是静态数据后,先找到总的ul标签,再找它里面的li标签,最后在img标签里面的src属性,即可获得想要的图片url地址。

3、通过切割图片url的方式获取图片名字。

4、完成图片命名后,使用os模块确定图片存放的路径。

二、设置爬虫代理IP

在做爬虫的过程中,如果你爬取的频率过快,不符合人的操作模式。有些网站的反爬虫机制通过监测到你的IP异常,访问频率过高。就会对你进行封IP处理。目前已有比较多的第三方平台专门进行代理IP的服务。

三、爬取汽车之家网站上的图片具体代码

# piplines管道代码
from urllib import request
import osclass VehicleHomePipeline:def process_item(self, item, spider):pic_url = item['pic_url']# 得到图片名字pic_name = pic_url.split('__')[-1]  # 得到xxx.jpg# os.path.dirname(__file__) 结果 D:\PycharmProjects\spider\day21\vehicle_home\vehicle_home\# 创建图片存放路径 xxx\vehicle_home\result_picpic_path = os.path.join(os.path.dirname(__file__), 'result_pic')# 下载图片 xxx\vehicle_home\result_pic\xxx.jpgrequest.urlretrieve(pic_url, pic_path + '/' + pic_name)return item# 爬虫代码
import scrapy
from day21.vehicle_home.vehicle_home.items import VehicleHomeItemclass VehPicSpider(scrapy.Spider):name = 'veh_pic'allowed_domains = ['car.autohome.com.cn']base_url = 'https://car.autohome.com.cn/photolist/series/18/p{}/'start_urls = [base_url.format(1)]def parse(self, response):# 获取图片标签列表pic_lists = response.xpath('//ul[@id="imgList"]/li')for pic in pic_lists:pic_url = pic.xpath('./a/img/@src').extract_first()# 上述获取的url需要进一步补全pic_url = response.urljoin(pic_url)item = VehicleHomeItem()item['pic_url'] = pic_urlprint(item)yield item# 翻页逻辑for page in range(2, 3):next_url = self.base_url.format(page)yield scrapy.Request(next_url)

以上就是python爬虫爬取汽车之家网站上的图片的思路和具体演示代码,大家可以套用代码灵活使用哟~

更多python爬虫实战案例分享(视频+源码),文末领取。

谢谢大家支持,喜欢的话别忘记关注转发一下哦~

读者福利:知道你对Python感兴趣,便为你准备了这套python学习资料,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

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

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

【点此链接】领取

好文推荐

了解python的前景:https://blog.csdn.net/weixin_49895216/article/details/127186741

了解python能做什么:https://blog.csdn.net/weixin_49895216/article/details/127124870

http://www.lryc.cn/news/2418498.html

相关文章:

  • 最好用的WiFi密码共享APP推荐(能查看已连接WiFi密码)
  • Visifire WPF 图表控件 破解
  • MySQL里有2000万条数据,但是Redis中只存20万的数据,如何保证redis中的数据都是热点数据?
  • 思科模拟器--02.静态路由和默认路由配置24.5.15(24.5.20补)
  • ubuntu下安装杀毒软件Antivir
  • 2024年最全OpenGL学习脚印 使用索引绘图(index drawing),2024年最新玩转MySQL
  • 【网络奇缘】- 如何自己动手做一个五类 以太网 RJ45 网络电缆(1)
  • 数据库入口和密码:维普、万方和cnki(转)
  • codeblocks 汉化教程
  • Gtalk基本功能完成
  • Win7系统提示找不到audiosrv.dll文件的解决办法
  • NOD32离线升级更新包使用方法
  • C# ASP.NET校园外卖网站管理系统源码 前台+后台
  • iebook超级精灵2008 专业版破解
  • robots协议相关知识(摘转自360百科)
  • 安卓系统一键root
  • Vue.js教程
  • 【单片机】2.8 AT89S52单片机的最小应用系统
  • 模型蒸馏探索(Bert)
  • 3D模型动画素材来源
  • 光棍节程序员闯关秀第1关(总共10关)
  • shsh备份工具_A12A13 iOS13备份shsh2简易工具/附详细教程
  • Temple Run的终点
  • 文件下载时直接对流进行zip加密压缩
  • 百度文心一言api 调用ERNIE-3.5-8K,Python技术开发文档
  • 三维装箱模型
  • 从技术支持看PLC制造商的差距
  • 给弟弟的国产山寨机安装软件
  • 常用的几种brush
  • 中标麒麟7.0+linux内核版本,中标麒麟7.0下载