python 爬图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 爬图相关的知识,希望对你有一定的参考价值。

 

利用bs库进行爬取,在下载html时,使用代理user_agent来下载,并且下载次数是2次,当第一次下载失败后,并且http状态码是500-600之间,然后会重新下载一次

soup = BeautifulSoup(html, "html.parser")
当前页面时html的
当当前页面时html5时
soup = BeautifulSoup(html, "html5lib")

#-*- coding:utf-8 -*-
import re
import urllib
import urllib2
import lxml.html
import itertools
import os
from bs4 import BeautifulSoup

def download(url,user_agent=wswp,num_try = 2):
    print Downloading:,url

    headers = {User_agent:user_agent}
    request = urllib2.Request(url,headers=headers)
    try:
        html = urllib2.urlopen(request).read()
    except urllib2.URLError as e:
        print Download error,e.reason
        html = None
        if num_try > 0:
            if hasattr(e,code) and 500 <= e.code <600:
                return download(url,user_agent,num_try-1)
    return html

def download_picture(url,path,name):
    if not os.path.isdir(path):
        os.mkdir(path)
    f = open(path+/ + name + .jpg, wb)
    f.write(download(url))
    f.close()
    
def bs_scraper(html):
    soup = BeautifulSoup(html, "html.parser")
    results = soup.find_all(name=img,attrs={class:BDE_Image})
    tt = 0
    for each in results:
        src = each.get(src)
        print src
        download_picture(src,/picture,str(tt))
        tt = tt + 1




url = https://tieba.baidu.com/p/4693368072



html = download(url)

bs_scraper(html)

 






以上是关于python 爬图的主要内容,如果未能解决你的问题,请参考以下文章

爬图交互界面及翻页初尝式

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档