文档章节

Ukulele百度贴吧图片python3单线程爬取

a
 anglecv
发布于 2017/09/12 14:19
字数 462
阅读 34
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

前因

由于最近在找Uku谱子, 发现贴吧图片的资源还行,就弄着下载了。

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: actanble
# @Date:   2017-9-12 11:59:24

import urllib.request as ur
import os

class Spyder():

    def __init__(self, url):
        self.url = url

    def open_url(self):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
        req = ur.Request(url=self.url, headers=headers)  # python2,urllib.request()
        response = ur.urlopen(req)  # python2,urllib2.urlopen()
        return response.read()

def main():

    with open("json.txt", "r+") as f:
        urls = f.readlines()
        f.close()
    import json, requests
    res = []
    for url1 in urls:
        json1 = json.loads(requests.get(url1).text)
        print(json1["data"]["pic_list"])
        for x in json1["data"]["pic_list"]:
            res.append(x["pic_id"])

    def get_img_url(pid):
        return "https://imgsa.baidu.com/forum/pic/item/"+ pid +".jpg"

    i = 0
    with open("pic12.txt", "w+", ) as f:
        for x in res:
            f.write(get_img_url(x) + "\n")
            i += 1
        f.close()

    print(i)


def run():
    main()
    import requests
    def test_wirte():
        with open("pic12.txt", "r+") as f1:
            imgs = f1.readlines()
            i = 1
            for img in imgs:
                try:
                    os.mkdir("img_ukulele")
                except:
                    pass
                with open("./img_ukulele/"+str(i) + ".jpg", "wb") as f:
                    f.write(Spyder(img).open_url())
                    f.close()
                i+=1
            f1.close()


if __name__ == "__main__":
    run()

附件

json.txt

http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121321&pn=1&ps=1&pe=40&info=1&_=1505195101160
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121321&pn=1&ps=121&pe=160&wall_type=v&_=1505195222386
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121321&pn=1&ps=161&pe=200&wall_type=v&_=1505195222704
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121321&pn=1&ps=41&pe=80&wall_type=v&_=1505195168755
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121321&pn=1&ps=81&pe=120&wall_type=v&_=1505195221831
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121318&pn=1&ps=1&pe=40&info=1&_=1505195457441
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121318&pn=1&ps=41&pe=80&wall_type=v&_=1505195465864
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121318&pn=1&ps=81&pe=120&wall_type=v&_=1505195490499
http://tieba.baidu.com/photo/g/bw/picture/list?kw=ukulele&alt=jview&rn=200&tid=2125121318&pn=1&ps=121&pe=160&wall_type=v&_=1505195492589

© 著作权归作者所有

a
粉丝 0
博文 1
码字总数 462
作品 0
武汉
私信 提问
加载中

评论(0)

Python高效爬虫方案总结 - 知乎

前言 由于项目需要建立一个尽可能全面的药品图片库,所以今天就在各种爬取药品图片。由于目前CPU占用几乎100%, 也没法干别的事情,就趁着这段时间写篇小文章把Python爬虫这块一次性总结下。...

一亩三分地
03/31
0
0
Spider-Python爬虫之使用Selenium模拟浏览器行为

分析 他的代码比较简单,主要有以下的步骤:使用库,打开百度贴吧的首页地址,再解析得到为标签底下的标签,最后将标签的图片保存下来。 headers = { } data=requests.get("https://tieba.b...

osc_wztp4fgg
2019/01/08
2
0
Python实现贴吧多线程网盘爬虫

大多数Python学习者都是冲着Python在爬虫领域有非常出色的表现才开始学习的,在学好Python的基本语法并会使用re、requests、BeautifulSoup4等模块后,很快就能写出一个简单的爬虫小程序(不要...

数据取经团
2017/11/29
0
0
教程+资源,python scrapy实战爬取知乎最性感妹子的爆照合集(12G)!

一.出发点: 之前在知乎看到一位大牛(二胖)写的一篇文章:python爬取知乎最受欢迎的妹子(大概题目是这个,具体记不清了),但是这位二胖哥没有给出源码,而我也没用过python,正好顺便学一...

osc_nmvhliqx
2018/09/14
16
0
IT宅男利用Python网络爬虫抓取百度贴吧评论区图片和视频(实战篇) - 知乎

【一、项目背景】 百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,小编带大家通过搜索关键字来获取评论区的图片...

python入门
05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何使用正则表达式验证电子邮件地址? - How to validate an email address using a regular expression?

问题: Over the years I have slowly developed a regular expression that validates MOST email addresses correctly, assuming they don't use an IP address as the server part. 多年来......

技术盛宴
59分钟前
18
0
grep一个文件,但显示几个周围的行? - grep a file, but show several surrounding lines?

问题: I would like to grep for a string, but also show the preceding five lines and the following five lines as well as the matched line. 我想grep一个字符串,但也显示前五行和以......

fyin1314
今天
36
0
运维告警管理—多渠道的通知必达

睿象云智能告警平台CA中通知策略实现了被分派人接收告警的通知方式,确保告警发生/认领/关闭时,能以用户习惯的接收告警的方式,实时收到告警通知,同时,尽可能减少告警遗漏。 如果你想实现...

睿象云
今天
35
0
方法区的回收

方法区中主要回收:1.废弃常量;2.无用的类。 但是判断它们废弃或无用了并不一定会被回收。 1.废弃常量: 对于常量池中的常量a,如果没有任何对象引用该常量的话,就表示它是一个废弃常量。 ...

曦鱼violet
今天
26
0
功能测试(手工测试)转向软件测试工程师的进阶之路

今天在爱码小哥的知乎上看到一个网友提问说,功能测试(手工测试)想要提升自己应该怎么做,有哪些主要职责,正好今天有时间,明天是周六了。我整理了软件测试进阶各方面的资料。初衷于帮助大...

爱码小哥
今天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部