爱美x之心人皆有之(爬虫获取妹纸图片,附加完整代码)

news/2024/7/19 9:53:17 标签: python, 爬虫

没有什么别的想法,就只是人我心情愉悦,哈哈哈哈,懂得都懂,小编就不继续说下起了,感觉车开远了,回归正题。下面开始上干货。

 

目录

第一步(先找到一个目标)

第二步,请求网址

第三步,解析网址

第四步,保存图片

代码优化


  千里之行,始于足下,我们先找到一个目标。(小编百度搜索了一个,地址:妹纸图片)

果然,就是让人心情愉悦,下面可以点击鼠标右键检查或者f12查看源代码,让我们看看这些小姐姐图片放在那里,点击绿色部分更快让我们找到我们需要都内容。

 

第二步,请求网址

下面就开始用代码加图片进行理解了。(如果爬取其他网址请求不到,说明有反爬机制,反爬机制解决办法)

python hljs">import requests
# 导入请求库

# 请求网页
response=requests.get('http://www.jj20.com/bz/nxxz/')
print(response.text)

 内容如下(绿色部分,表示出现了乱码问题,下面修改一下编译方式,乱码解决办法)

按方法可以看到网页的编码格式,(gbk)

修改代码如下

python hljs">import requests
# 导入请求库

# 请求网页
response=requests.get('http://www.jj20.com/bz/nxxz/')
#指定编译方式
html=response.text.encode('iso-8859-1').decode('gbk')
print(html)

现象

第三步,解析网址

往往我们需要从网页中获取图片连接,然后进行爬取保存。

python hljs"># 请求网页
response=requests.get('http://www.jj20.com/bz/nxxz/')
#指定编译方式
html=response.text.encode('iso-8859-1').decode('gbk')

#解析网址
url=re.findall('<img src="(.*?)" width=".*?" height=".*?" alt=".*?">',html)
print(url)

效果

第四步,保存图片

下面就是进行图片保存,一般都以二进制形式保存。

python hljs">​
import requests
# 导入请求库
import re
#导入正则表达(筛选需要内容)
import time

# 请求网页
response=requests.get('http://www.jj20.com/bz/nxxz/')
#指定编译方式
html=response.text.encode('iso-8859-1').decode('gbk')

#解析网址
url=re.findall('<img src="(.*?)" width=".*?" height=".*?" alt=".*?">',html)

#保存图片
for ul in url:
    #增加延时
    time.sleep(1)
    #设置图片名称,以/为分隔符获取最后部分
    name=ul.split('/')[-1]
    new_response=requests.get(ul)
    with open(name,mode='wb') as f:
        f.write(new_response.content)
        print('下载完成')

 

现象

代码优化(完整代码)

python hljs">import requests
# 导入请求库
import re
#导入正则表达(筛选需要内容)
import time
import os
#导入操作系统模块
def picture(urls):
    # 请求网页
    response=requests.get(urls)
    #指定编译方式
    html=response.text.encode('iso-8859-1').decode('gbk')
    #解析网址
    url=re.findall('<img src="(.*?)" width=".*?" height=".*?" alt=".*?">',html)
    # 判断是否存在文件夹,不存在就创建

    return url
if __name__ == '__main__':
    if not os.path.exists('pictur'):
        os.mkdir('pictur')
        # 保存图
    page = 1
    while page <= 2:
        urls = f'http://www.jj20.com/bz/nxxz/list_7_{page}.html'
        for ul in picture(urls):
            print(ul)
            time.sleep(1)
            name = ul.split('/')[-1]
            new_response = requests.get(ul)
            with open(file=r'D:\pr\pythonProject\pictur\{}'.format(name), mode='ab') as f:
                f.write(new_response.content)
                print('下载完成')
            page+=1
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

现象

 


http://www.niftyadmin.cn/n/1833049.html

相关文章

wp7设置浏览器主页

<!--LayoutRoot 是包含所有页面内容的根网格--> <Grid x:Name"LayoutRoot" Background"Transparent"> <Grid.RowDefinitions> <RowDefinition Height"Auto"/> <RowDefiniti…

二维码, QR 与 DM的区别

2019独角兽企业重金招聘Python工程师标准>>> http://www.ancc.org.cn/news/article.aspx?id3693 不同码制的信息容量是有极大的差别的。QR码容量密度为16kb&#xff0c;一般信息量都能够达到2kb以上。而DM码则更“小”&#xff0c;可在仅仅25mm的面积上编码30个数…

小白都可以操作2021版(Github的注册与使用,超详细)

作为一个学习IT的人&#xff0c;学习一点开源的社区是必须的&#xff0c;下面我们就来说说&#xff0c;IT中最大的开源交友社区github。废话不多说来看看 目录 目录 GitHub的基本使用 GitHub的目的 仓库&#xff08;repository) 收藏&#xff08;star&#xff09; 复制克…

java学习第11天(复习)

变量的注意事项: 变量不能重复定义变量未初始化不可以使用 人机交互Scanner: //入口public static void main(String[] args) {/** 操作Scanner类* 1.创建键盘扫描器 Scanner keynew Scanner(System.in);* 2.导包 import java.util.Scanner;* 3.提示语* 4.接受用户输入的数据…

Android-中常用方法集锦

Android中常用方法集锦&#xff1a; Java代码EditText ed new EditText(this); Editable eb ed.getEditableText(); //获取光标位置 int position ed.getSelectionStart(); //指定位置插入字符 eb.insert(position, "…

B2B行业网站销售部与其它部门如何共享发展成果

销售部能否使公司实现盈利&#xff0c;未来销售额的增长空间有多大&#xff0c;是一个经营B2B行业网站的网络公司是否能生存或具有发展壮大可能的直接判断标准&#xff0c;并直接涉及到网站产品开发、内容建设、产品推广、管理层未来战略的制定。所以我们考虑销售额&#xff0c…

Ext.Net GridPanel属性配置

1、Ext.grid.GridPanel 主要配置项&#xff1a; store&#xff1a;表格的数据集 columns&#xff1a;表格列模式的配置数组&#xff0c;可自动创建ColumnModel列模式 autoExpandColumn&#xff1a;自动充满表格未用空间的列&#xff0c;参数为列…

双色球案例

双色球案例: 蓝球:1-15中任意一个红球:1-32中任意6个,并且不重复 要导入的包: import java.util.Arrays;import java.util.Random; public static void main(String[] args) {System.out.println("欢迎来到中国福利彩票开奖中心:");// 1.构建一个随机数Random r …