登录 | 注册

还在为斗图斗不过而烦恼吗?今天教你斗图神技,带你飞!

Robin 339次浏览

摘要:今天发现个图片站,斗图神站,让你斗图立于不败之地!

今天无意间发现了个斗图的网站,无可厚非拿来为我所用。

有反爬虫,那就加headers模拟浏览器访问,拿到html源码

def get_html(url):
    headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'}
    request = requests.get(url=url, headers=headers)
    response = request.content
    return response


这次我们用BeautifulSoup和xpath来解析网页节点,获取图集的url,并获取到图集详情的html源码

def get_img_html(html):
    soup = BeautifulSoup(html, 'lxml')
    all_a = soup.find_all('a', class_='list-group-item')
    for i in all_a:
        get_img(get_html(i['href']))


通过xpath获取图片地址,并利用多线程进行下载

def get_img(html):
    soup = etree.HTML(html)
    items = soup.xpath('//div[@class="artile_des"]')
    for item in items:
        imgurl_list = item.xpath('table/tbody/tr/td/a/img/@onerror')
        for i in imgurl_list:
            th = threading.Thread(target=save_img, args=(i,))
            th.start()


下载图片

def save_img(img_url):
    img_url = img_url.split('=')[-1][1:-2].replace('jp', 'jpg')
    print u'正在下载'+img_url
    img_content = requests.get(img_url).content
    with open('doutu/%s.jpg' %img_url.split('/')[-1], 'wb') as f:
        f.write(img_content)


调用下面的代码开始下载

url = 'http://www.doutula.com/article/list/?page='
for i in range(1,11):
    html = get_html(url.format(i))
    get_img_html(html)


至此,就等着拿图去战斗吧

image.png


原创文章转载请注明出处。

相关文章

表情

共1条评论
  • 博客网友

    妈妈再也不用担心的斗图再输了!

    2017-05-09