tensorflow学习——爬虫(图片及IP地址)

1、使用 requests 方法
百度图片的下载

import re
import requests
import os

def dowmloadPic(html,keyword):

    pic_url = re.findall('"objURL":"(.*?)",',html,re.S)
    i = 0
    print ('找到关键词:'+keyword+'的图片,现在开始下载图片...')
    for each in pic_url:
        print ('正在下载第'+str(i+1)+'张图片,图片地址:'+str(each))
        try:
            pic= requests.get(each, timeout=10)
        except requests.exceptions.ConnectionError:
            print ('【错误】当前图片无法下载')
            continue
        string = 'pictures\\'+keyword+'_'+str(i) + '.jpg'
        with open(string,'wb') as fp:
            fp.write(pic.content)
        i += 1

if __name__ == '__main__':

    session = requests.Session()
    if os.path.exists('pictures') is False:
        os.makedirs('pictures')
    word = input("Input key word: ")
#    url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word='+word+'&ct=201326592&v=flip'
    url = 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=' +word 
    result = session.get(url)
    dowmloadPic(result.text,word)

2、使用 urllib.request 方法

import re
import urllib.request

def open_url(url):
    req = urllib.request.Request(url)
    req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")

    page = urllib.request.urlopen(req)
    html = page.read().decode('utf-8')
#    print(html)
    return html
''' 
# 用于搜索网页中照片,并下载到本地   
def get_img(html):
    p = r'"objURL":"([^"]+\.jpeg)",'
#    p = r'"objURL":"(.*?)",'
#    print(html)
    iplist = re.findall(p, html)
#    print(imglist)
    for each in iplist:
        filename = each.split('/')[-1]
        print(filename)
        # 将网页保存在本地
        urllib.request.urlretrieve(each, filename, None)
'''
#用于爬取网站中存在的ip地址       
def get_img(html):
    p = r'(?:(?:[0,1]?\d?\d?|2[0-4]\d|25[0-5])\.){3}(?:[0,1]?\d?\d?|2[0-4]\d|25[0-5])'
#    p=r'(?:(?:\d\d\d|\d\d|\d)\.){3}(?:\d\d\d|\d\d|\d)'
#    print(html)
    iplist = re.findall(p, html)
#    print(imglist)
    for each in iplist:
        print(each)
        # 将网页保存在本地
#        urllib.request.urlretrieve(each, filename, None)

if __name__ == '__main__':
    url = 'http://www.xicidaili.com/'
    get_img(open_url(url))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值