1. import urllib.request
  2. import re
  3. import os
  4. import random
  5. import threading
  6.  
  7. def url_open(url): #在第8到第12行,总是无法正常运行,代理Ip是从网上免费代理ip获取的。
  8. #ips = ['117.136.234.12:80', '218.189.26.20:8080','202.194.101.150:80','180.166.112.47:8888']
  9.  
  10. #proxy = urllib.request.ProxyHandler({'http':random.choice(ips)})#{'http':'124.202.174.66:8118'}
  11. #opener = urllib.request.build_opener(proxy)
  12. #opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36')]
  13.  
  14. #urllib.request.install_opener(opener)
  15.  
  16. req = urllib.request.Request(url)
  17.  
  18. req.add_header('User-Agent','Mozilla/5.0')
  19. urlobject = urllib.request.urlopen(req)
  20. response = urlobject.read()
  21. return response
  22.  
  23. def find_page(html):
  24. s2 = r'\[\d{4}\]'
  25. m = re.search(s2, html)
  26. page = m.group()
  27. print("find_page")
  28. return page
  29.  
  30. def find_page_link(html):
  31. s = r'http://ww[0-9].sinaimg.cn/mw600/\w+.jpg'
  32. m = re.findall(s, html)
  33. return m
  34.  
  35. def save_page(jpg):
  36. for file in jpg:
  37. data = url_open(file)
  38. #print("wwwwwwwwww")
  39. name = "E:\\作业\\j_d\\"+file.split('/')[-1]
  40. with open(name, 'wb') as f:
  41. f.write(data)
  42.  
  43. def down_jpg(dir_name='E:\作业\j_d', page=10, pages=10):
  44. #os.mkdir(dir_name)
  45. os.chdir(dir_name)
  46. #red = url_open('http://jandan.net/ooxx')
  47. #print(type(red))
  48. #red = red.decode('utf-8')
  49.  
  50. #page = find_page(red)
  51. #page = int(page[1:-1])
  52. #page = 1333
  53. for i in range(pages):
  54. page += 1
  55. url = 'http://jandan.net/ooxx/page-'+str(page)+'#comments'
  56. print(url)
  57. data = url_open(url)
  58. data = data.decode('utf-8')
  59. print("dddddddddddddd")
  60. page_list = find_page_link(data)
  61. #print("sssssssssssssss")
  62. save_page(page_list)
  63.  
  64. if __name__ == '__main__':
  65. p = threading.Thread(target=down_jpg,args=('E:\作业\j_d',1555,10))
  66. c = threading.Thread(target=down_jpg,args=('E:\作业\j_d',1024,10))
  67. #down_jpg()
  68. p.start()
  69. c.start()
  70.  
  71. p.join()
  72. c.join()

写了个小爬虫,为何用上代理ip总是出现错误。的更多相关文章

  1. 爬虫反爬之代理IP

    爬虫反爬之代理IP 代理IP其实本就是在requests模块中的参数 定义: 代替原来的IP地址去对接网络的IP地址. 作用: 隐藏自身真实IP,避免被封. 获取代理IP网站 西刺代理.快代理.全网代 ...

  2. 网络爬虫一定要用代理IP吗

    数据采集现在已经成为大数据时代不可以缺少的一部分,在数据采集过程中,很多人都会用到代理ip,那么网络爬虫一定要用代理IP吗?答案虽然不是肯定的,但出现以下情况一定是需要用到代理IP的.1.在爬虫的时候 ...

  3. C#多线程爬虫抓取免费代理IP

    这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2005就2.0的类库,VS2010就使用4.0,以此类推.. ...

  4. python基础学习1-网络爬虫程序中的代理IP设置

    #!/usr/bin/env python # -*- coding:utf-8 -*-网络爬虫代理 import urllib.request import random url="htt ...

  5. 简单爬虫-爬取免费代理ip

    环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import ...

  6. PHP简单爬虫 爬取免费代理ip 一万条

    目标站:http://www.xicidaili.com/ 代码: <?php require 'lib/phpQuery.php'; require 'lib/QueryList.php'; ...

  7. vb.net 多线程爬虫抓取免费代理IP

    Class Program Public Shared masterPorxyList As List(Of proxy) = New List(Of proxy)() Public Class pr ...

  8. 用Python写一个小爬虫吧!

    学习了一段时间的web前端,感觉有点看不清前进的方向,于是就写了一个小爬虫,爬了51job上前端相关的岗位,看看招聘方对技术方面的需求,再有针对性的学习. 我在此之前接触过Python,也写过一些小脚 ...

  9. nodejs http小爬虫

    本课程用nodejs写一个http小爬虫,首先科普一下,爬虫就是把网上的网页代码给弄下来,然后纳为己用.目前最大的爬虫:百度快照等的. 下面直接上代码 示例一: var http = require( ...

随机推荐

  1. iOS极光推送的基本使用

    昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...

  2. 20151222--Ajax三级无刷新

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. 安全的PHP代码编写准则

    原文链接 绝不要信任外部数据或输入 关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据. ...

  4. eclipse同步远程服务器

    eclipse里有一个强大的插件,可以直接在本地编辑远程服务器代码,Eclipse Remote System Explorer (RSE) 下载安装方法: 一.下载,高版本的eclipse可以直接下 ...

  5. 读Flask源代码学习Python--config原理

    读Flask源代码学习Python--config原理 个人学习笔记,水平有限.如果理解错误的地方,请大家指出来,谢谢!第一次写文章,发现好累--!. 起因   莫名其妙在第一份工作中使用了从来没有接 ...

  6. C++ 一些容易忽略的基本点

    new 高级应用 delete 其他用途帮助函数严格匹配类型 char teststr[100] = { 0 };// 静态区void test3(){ // 堆区 int *p = new int[ ...

  7. 关于C语言中结构体中的结构体成员导致的字节对齐问题

    关于结构体的字节对齐是什么,就不赘述,再此附上一篇文章,介绍字节对齐:http://www.linuxsong.org/2010/09/c-byte-alignment/ 这里的结构体字节对齐的数据类 ...

  8. ORACLE 两个表或两个结果集的数据对比常用的函数

    假设有两个表A,B,都只有一个字段PHONE 1,MINUS SELECT PHONE FROM A MINUS SELECT PHONE FROM B;     相当于用结果集A减去结果B得出的结果 ...

  9. onActivityResult不起作用?可能是和你的launchMode有关!

    昨天在自己的项目中用到了onActivityResult()方法获得activity的返回值.我从Activity01通过 startActivityForResult启动了Activity02和Ac ...

  10. 通过layer-list多图层叠加效果实现圆角功能

    在android的开发过程中,我们可能会做圆角的效果出来,如下图所示: 四个角都是圆角的效果.如果让UI设计人员直接出图,可能会更简单一些.但是我们使用android中layer-list多图层叠加效 ...