python爬取网页的时11004错误

论坛 期权论坛 脚本     
匿名技术用户   2020-12-21 22:28   39   0
# -*- coding;utf-8 -*-
import requests
import os
# import urllib.request

url = "http://pic.sogou.com/pics?"


def http_page(tag, page):
    par = []
    for x in range(0, 48 * page + 48, 48):
        par.append({"query": tag, "mode": 1, "start": x, "reqType": "ajax", "reqFrom": "result", "tn": 0})
    # url = "http://pic.sogou.com/pics?"
    urls = []
    for i in par:
        urls.append(requests.get(url, params=i).json().get("items"))
    return urls


def get_img(tag, items_list, local_path):
    if not os.path.exists(local_path):   # 新建文件夹
        os.mkdir(local_path)

    x = 0
    for list_url in items_list:
        for i in list_url:
            if i.get("pic_url") != None:
                #try:
                #    urllib.request.urlopen(i.get("pic_url"))
  #except:
                #    continue
                #if requests.get(i.get("pic_url")).status_code != 200:
                #    print("错误链接:"+i.get('pic_url'))
                #    continue
                print('%d正在下载:%s' % (x, i.get('pic_url')))
                irg = requests.get(i.get("pic_url"))
                with open(local_path + tag +'%d.jpg' % x, 'wb') as file:
                    file.write(irg.content)
                x += 1
            else:
                print("图片连接不存在")


dataList = http_page("动物", 2)
get_img(dataList, 'e:/pythonSpiderFile/img18/')
最开始学习Python会遇到各种各样的问题,今天遇到了一个11004错误,查了很多资料一直搞不清楚要到底怎么处理,最后自己动手
,用谷歌的工具查询了半天才发现原来的连接不存在,所有我在链接之前进行了判断,如果页面不存在(if requests.ge
t(i.get("pic_url")).status_code !=200: continue)则跳过这个连接继续进行下一次,这时候新的问题出来了,那就是Failed to
 establish a new connection: [Errno 11004] getaddrinfo failed' 这个问题也在网上查了两个小时还是未能找到解决办法,最、
后想到了try except,于是试了requests与urllib 这两个库,最后在urllib这里找到了解决办法,但是具体原因摸的不是很清楚,
所以这里就不记录了,以上代码在Python3.6.2环境中运行,去掉代码中的注释就可以爬取对应图片到贝蒂保存,这只是菜鸟学习
爬虫的时候遇到的一点小问题,做个小小的记录。欢迎大神指点批评。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP