做电影网站用什么主机好,企业做网站的优势,找做网站,关于网站建设的管理实践报告文章目录 一、爬取目标二、实现效果三、准备工作四、代理IP4.1 代理IP是什么#xff1f;4.2 代理IP的好处#xff1f;4.3 获取代理IP4.4 Python获取代理IP 五、代理实战5.1 导入模块5.2 设置翻页5.3 获取图片链接5.4 下载图片5.5 调用主函数5.6 完整源码5.7 免费代理不够用怎… 文章目录 一、爬取目标二、实现效果三、准备工作四、代理IP4.1 代理IP是什么4.2 代理IP的好处4.3 获取代理IP4.4 Python获取代理IP 五、代理实战5.1 导入模块5.2 设置翻页5.3 获取图片链接5.4 下载图片5.5 调用主函数5.6 完整源码5.7 免费代理不够用怎么办 六、总结 一、爬取目标
本次爬取的目标是某网站4K高清小姐姐图片 二、实现效果
实现批量下载指定关键词的图片存放到指定文件夹中 三、准备工作
Python3.10
编辑器PyCharm
第三方模块自行安装
pip install requests # 网页数据爬取
pip install lxml # 提取网页数据四、代理IP
4.1 代理IP是什么
代理IP是一种安全功能可以充当网络中间平台使得用户电脑可以先访问代理IP然后由代理IP访问目标网站页面从而起到防火墙的作用。代理IP具有多种类型包括HTTP代理、HTTPS代理、SOCKS代理等分别适用于不同的网络通信需求。使用代理IP可以提高访问速度、保护隐私信息、突破下载限制以及作为防火墙保护网络安全。
4.2 代理IP的好处
使用代理IP的好处有以下几个方面 隐藏真实IP地址使用代理IP可以将您的真实IP地址隐藏起来确保您的在线活动更加匿名和隐私保护。这对于保护个人隐私和防止追踪非常重要。 绕过网络限制有些地区或网络环境可能存在访问限制如某些网站、社交媒体平台或在线服务被屏蔽。通过使用代理IP可以绕过这些限制访问被封锁的内容或服务。 提高访问速度代理IP可以缓存和压缩网络数据从而提高网页加载速度和下载速度。这对于访问速度较慢的网站或在网络拥堵时特别有用。 数据采集和爬虫应用代理IP可以用于数据采集和爬虫应用通过使用不同的代理IP地址可以避免被目标网站识别和封禁从而更好地进行数据采集和爬虫操作。 地理位置伪装有时候需要在网站或应用中模拟不同的地理位置以获取特定的服务或信息。使用代理IP可以实现地理位置的伪装使网站或应用认为您位于不同的地理位置。
4.3 获取代理IP
博主最近写爬虫发现了一款不错的代理IP响度速度快代理质量高有免费试用也有超值套餐云立方代理IP 1、打开云立方的官网点击代理IPhttp://www.yunlifang.cn/dailiIP.asp 2、我们这里免费试用测试一下效果 3、然后找客服说明免费试用一下说明需要代理IP的时长、数量等信息 然后客服给我们账号密码请求地址和端口号 接下来就是使用Python去获取代理IP。
4.4 Python获取代理IP
我们用Python获取代理IP注意将代码中的账号、密码、地址、端口替换为刚才客服给的账号信息
def get_ip():获取代理IP# 这里替换为刚才客服给的账号信息proxyUser 你的账号 # 账户proxyPass 你的密码 # 密码proxyHost 你的地址 # 地址proxyPort 你的端口号 # 端口proxyMeta fhttp://{proxyUser}:{proxyPass}{proxyHost}:{proxyPort}proxies {http: proxyMeta,https: proxyMeta}print(proxies)return proxiesget_ip()这里我用的隧道代理IP隧道代理IP是指下面那个账号链接每次去访问网页就会自动切换IP 五、代理实战
5.1 导入模块
import requests # python基础爬虫库
from lxml import etree # 可以将网页转换为Elements对象
import time # 防止爬取过快可以睡眠一秒
import os # 创建文件5.2 设置翻页
首先我们来分析一下网站的翻页一共有62页 第一页链接
https://pic.netbian.com/4kmeinv/index.html第二页链接
https://pic.netbian.com/4kmeinv/index_2.html第三页链接
https://pic.netbian.com/4kmeinv/index_3.html可以看出每页只有index后面从第二页开始依次加上_页码所以用循环来构造所有网页链接
if __name__ __main__:# 页码page_number 1# 循环构建每页的链接for i in range(1,page_number1):# 第一页固定后面页数拼接if i 1:url https://pic.netbian.com/4kmeinv/index.htmlelse:url fhttps://pic.netbian.com/4kmeinv/index_{i}.html5.3 获取图片链接
可以看到所有图片url都在 ul标签 a标签 img标签下 我们创建一个get_imgurl_list(url)函数传入网页链接获取 网页源码用xpath定位到每个图片的链接
def get_imgurl_list(url,imgurl_list):获取图片链接# 请求头headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36}# 发送请求response requests.get(urlurl, headersheaders)# 获取网页源码html_str response.text# 将html字符串转换为etree对象方便后面使用xpath进行解析html_data etree.HTML(html_str)# 利用xpath取到所有的li标签li_list html_data.xpath(//ul[classclearfix]/li)# 打印一下li标签个数看是否和一页的电影个数对得上print(len(li_list)) # 输出20没有问题for li in li_list:imgurl li.xpath(.//a/img/src)[0]# 拼接urlimgurl https://pic.netbian.com imgurlprint(imgurl)# 写入列表imgurl_list.append(imgurl)运行结果 点开一个图片链接看看 OK没问题!!!
5.4 下载图片
图片链接有了代理IP也有了下面我们就可以下载图片。定义一个get_down_img(img_url_list)函数传入图片链接列表然后遍历列表每下载一个图片切换一次代理将所有图片下载到指定文件夹
def get_down_img(imgurl_list):# 在当前路径下生成存储图片的文件夹os.mkdir(小姐姐)# 定义图片编号n 0for img_url in imgurl_list:headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36}# 调用get_ip函数获取代理IPproxies get_ip()# 每次发送请求换代理IP获取图片防止被封img_data requests.get(urlimg_url, headersheaders, proxiesproxies).content# 拼接图片存放地址和名字img_path ./小姐姐/ str(n) .jpg# 将图片写入指定位置with open(img_path, wb) as f:f.write(img_data)# 图片编号递增n n 15.5 调用主函数
这里我们可以设置需要爬取的页码
if __name__ __main__:# 1. 设置获取的页数page_number 63imgurl_list [] # 用于存储所有的图片链接# 2. 循环构建每页的链接for i in range(1,page_number1):# 第一页固定后面页数拼接if i 1:url https://pic.netbian.com/4kmeinv/index.htmlelse:url fhttps://pic.netbian.com/4kmeinv/index_{i}.html# 3. 获取图片链接get_imgurl_list(url,imgurl_list)# 4. 下载图片get_down_img(imgurl_list)5.6 完整源码
注意将get_ip()函数代码中的账号、密码、地址、端口替换为刚才客服给的账号信息
import requests # python基础爬虫库
from lxml import etree # 可以将网页转换为Elements对象
import time # 防止爬取过快可以睡眠一秒
import osdef get_ip():获取代理IP# 这里替换为刚才客服给的信息代理服务器proxyUser 你的账号 # 账户proxyPass 你的密码 # 密码proxyHost 你的地址 # 地址proxyPort 你的端口号 # 端口proxyMeta fhttp://{proxyUser}:{proxyPass}{proxyHost}:{proxyPort}proxies {http: proxyMeta,https: proxyMeta}print(proxies)return proxiesdef get_imgurl_list(url,imgurl_list):获取图片链接# 请求头headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36}# 发送请求response requests.get(urlurl, headersheaders)# 获取网页源码html_str response.text# 将html字符串转换为etree对象方便后面使用xpath进行解析html_data etree.HTML(html_str)# 利用xpath取到所有的li标签li_list html_data.xpath(//ul[classclearfix]/li)# 打印一下li标签个数看是否和一页的电影个数对得上print(len(li_list)) # 输出20没有问题for li in li_list:imgurl li.xpath(.//a/img/src)[0]# 拼接urlimgurl https://pic.netbian.com imgurlprint(imgurl)# 写入列表imgurl_list.append(imgurl)def get_down_img(imgurl_list):# 在当前路径下生成存储图片的文件夹os.mkdir(小姐姐)# 定义图片编号n 0for img_url in imgurl_list:headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36}# 调用get_ip函数获取代理IPproxies get_ip()# 每次发送请求换代理IP获取图片防止被封img_data requests.get(urlimg_url, headersheaders, proxiesproxies).content# 拼接图片存放地址和名字img_path ./小姐姐/ str(n) .jpg# 将图片写入指定位置with open(img_path, wb) as f:f.write(img_data)# 图片编号递增n n 1if __name__ __main__:# 1. 设置获取的页数page_number 50imgurl_list [] # 用于存储所有的图片链接# 2. 循环构建每页的链接for i in range(1,page_number1):# 第一页固定后面页数拼接if i 1:url https://pic.netbian.com/4kmeinv/index.htmlelse:url fhttps://pic.netbian.com/4kmeinv/index_{i}.html# 3. 获取图片链接get_imgurl_list(url,imgurl_list)# 4. 下载图片get_down_img(imgurl_list)运行结果 下载成功了没有报错代理IP的质量还是不错的
5.7 免费代理不够用怎么办
免费的代理不够用可以看看云立方家的套餐还是蛮便宜的http://www.yunlifang.cn/dailiIP.asp 六、总结
代理IP对于爬虫是密不可分的代理IP可以帮助爬虫隐藏真实IP地址有需要代理IP的小伙伴可以试试云立方家的代理IP云立方代理IP