zoukankan      html  css  js  c++  java
  • 抓图小爬虫

    小伙伴有个需求,想识别图片中的数字。正好在研究这方面,所以先做个demo压压惊。

    已知一个图片库,分析图片的url比较有规律,很easy,但抓图时发现一直跳转到认证页面,

    应该少cookie,加上之搞定。

    (在这里提醒句,如果扒图片遇到阻碍,通常都是有办法绕过,<为何大量网站不能抓取?爬虫突破封禁的6种常见方法>http://www.cnblogs.com/junrong624/p/5533655.html

    还有这个《反爬虫四个基本策略》http://www.cnblogs.com/junrong624/p/5508934.html)

    由于只是测试,所以随机抓了几百张,再啰嗦几句,请求最好不要太频繁,给服务器压力太大,多线程什么的就更要慎重,确实需要可以深夜人少的时候抓。

    以下是代码,

    import requests
    import random
    from bs4 import BeautifulSoup
    import os
    headers = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    "Cookie":"PHPSESSID=6f37dmpn8m63gadp94d70amn15; fixlogin=1; Hm_lvt_8b50e88d65e01e75f6e24de31d23b934=1481994476; Hm_lpvt_8b50e88d65e01e75f6e24de31d23b934=1482055955"}
    baidu_headers = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
    photo_url = 'URL'#替换成目标url
    count = 0
    os.chdir("D:huipao\")
    while count < 200:
    count = count + 1
    id = random.randint(1,100000)
    img_html = requests.get(photo_url+str(id), headers=headers)
    img_Soup = BeautifulSoup(img_html.text, 'lxml')
    img_url = img_Soup.find('div', class_='item active').find('img')['src']
    print(img_url)
    img = requests.get(img_url, headers=baidu_headers)
    f = open(str(count) + '.jpg', 'ab')
    f.write(img.content)
    f.close()
    else:
    print('end')

    接下的思路是
    1:存一下每张图的识别出的号码值,可能会识别出多个
    2:如何遍历这些号码?将这些号码排个序吧,然后顺序查找,hash什么的先算了。
    keep on moving
  • 相关阅读:
    JS中的constructor、prototype、__proto__的要点理解
    call、apply、bind的源码模拟
    js中的继承方式
    IPV6
    java8 instant localDateTime
    FileInputFormat 的实现之TextInputFormat
    Git服务器,仓库的hook监控
    Linux 开机启动图形界面,shell界面
    java操作Hbase
    Linux 下安装 storm
  • 原文地址:https://www.cnblogs.com/marszhw/p/6195484.html
Copyright © 2011-2022 走看看