Python 简单爬虫(mm图)

参照cuiqingcai大佬的教程把代码改了下,记录一下待以后回头看看当初开始学爬的样子。

代码不健壮/完善,遇到的问题先记下,逐个再深入学习理解。

 

真的是头铁。获取的图片地址都是列表,没法保存,搜了一圈没找到方法,又不肯重新看教程,耗了大半天时间。这下好了,先曲线解决心态不炸了才能继续看教程。MMP,看以后还半罐水不。2018/09/06 21:56

 

1.抓取页面乱码

Pycharm编译返回的数据乱码,之前断断续续学习的搜过相关但没解决,这次处理了。方法应该不是太好,以后还要仔细看看编码方面的帖子。

2.正则匹配

还需多练加强,总感觉通配用得多或者写的不够具体会影响匹配效率。

3.内容页面采集

目前只采集了列表页,图片使用相对路径,要构造完整URL。暂时用的re.sub。刚开始写总觉得有点绕,先获取列表再列表中获取内容URL。。。

得注意的地方:

sub_html = re.sub('/allimg/', 'http://www.94xmn.com/uploads/allimg/', html)  #匹配不全

sub_html = re.sub('allimg/', 'http://www.94xmn.com/uploads/allimg/', html)   #匹配正常

4.保存文件夹

只保存了标题,但没格式化,文本显示内容不清晰。#每组图分别建立文件夹,以URL末尾数字命名。

5.多线程,快。

直接抄的大佬代码,想体验一下区别。后续深入,虽然采的页面不多,速度啊,嗖的一下。

6.剩余问题

1>.分页内容采集;2>.代码结构不清晰(各函数功能)

7.生成器(基础语法的教程没讲解,后续看高级点的。)

 

渣渣代码

import requests
import re
import os

header = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36' +
                  '(KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'

}

# 获取列表页
def get_list_link(url):
    r = requests.get(url, headers=header)
    html = r.text
    regex = re.compile(r'class="wf-cld".*?<a\shref="(.*?)"\stitle', re.S)
    rlinks = re.findall(regex, html)
    # print(rlink)
    return rlinks


# 获取内容页及分页
def get_pic_link(rlinks):
    for link in rlinks:
        r = requests.get(link, headers=header)
        print(link)
        print(link[-9:-5])
        r.encoding = 'utf-8'
        html = r.text
        sub = re.sub('/uploads/allimg/', 'http://94xmn.com/uploads/allimg/', html)
        # print(sub)
        regex = re.compile('<div class="bbox">.*?<img src=\'(.*?)\'\salt=', re.S)
        plink = re.findall(regex, sub)
        # print(plink)
        # 每组图建立个文件夹
        os.makedirs(os.path.join("G:\\studios\\python\\mmpic", link[-9:-5]))  ##创建一个存放套图的文件夹
        os.chdir('G:\\studios\\python\\mmpic\\' + link[-9:-5])
        # 获取图片url
        pic = requests.get(plink[0])
        with open(link[-9:-5] + '.jpg', 'wb') as f:
            f.write(pic.content)
            f.close()
    print('下载完毕')


# 主函数

def main():
    os.chdir('G:\\studios\\python\\mmpic')
    url = 'http://www.94xmn.com/siwameitui/list_3_2.html'
    rlinks = get_list_link(url)
    print(get_pic_link(rlinks))


if __name__ == '__main__':
    main()

 

 

 

最后是今天感受:程序这东西真神奇。

转载于:https://www.cnblogs.com/hyeTi/p/9574159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值