一.代理皮的简单使用

简单的看一二例子即可

import requests
#代理ip 高频的ip容易被封,所以使用ip代理
#免费代理 ip:www.goubanjia.com 快代理 西祠代理
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
}
url='https://www.baidu.com/s?wd=ip'
#ip代理的使用proxies,先指定协议的类型,http,https,再指定ip的端口
page_text=requests.get(url=url,headers=headers,proxies={'https':'1.10.186.79:8080'}).text with open('ip.html','w',encoding='utf-8') as f:
f.write(page_text)

二.多进程爬取

import requests
import re
import random
from multiprocessing.dummy import Pool
from lxml import etree #多线程爬取一定是在耗时比较多的情况下
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER'
}
#爬取第一页数据
url='https://www.pearvideo.com/category_6'
page_text=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_text)
#xpath解析返回一个列表
li_list=tree.xpath('//ul[@id="listvideoListUl"]/li')
# print(li_list)
#循环列表获取视频的url #解析出视频详情页的url
video_url_list=[]
for li in li_list:
detail_url='https://www.pearvideo.com/'+li.xpath('./div/a/@href')[0]
detail_page_text=requests.get(url=detail_url,headers=headers).text
ex='srcUrl="(.*?)",vdoUrl'
video_url=re.findall(ex,detail_page_text,re.S)[0]#re.单行匹配,一定要记得写,返回的额还是列表
# 存放的是所有视频的url
video_url_list.append(video_url.rstrip('"')) #从网页直接获取视频
def video_download(url):
return requests.get(url=url,headers=headers).content
#保存下来的视频
def save_video(data):
name=str(random.randint(1,5000))+'.mp4'
with open(name,'wb') as f:
f.write(data)
print(name+'保存成功') if __name__ == '__main__':
# #获取视频数据和写入都是比较耗时间的,我我们就用多进程进行会比较块
# #实例化一个进程池
pool=Pool(5)
#map函数接收两个参数,第一是函数,第二是可迭代对象,函数会依次作用到可迭代对象的每一个元素
video_data=pool.map(video_download,video_url_list)
print("-->",video_data)
#持久化存储视频的过程也是比价耗时间的,所以需要多进程会比较块一点
pool.map(save_video,video_data)
pool.close()
pool.join()

代理ip的使用以及多进程爬取的更多相关文章

  1. python+正则+多进程爬取糗事百科图片

    话不多说,直接上代码: # 需要的库 import requests import re import os from multiprocessing import Pool # 请求头 header ...

  2. 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~

    上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...

  3. python+BeautifulSoup+多进程爬取糗事百科图片

    用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...

  4. 使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据

    1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from mu ...

  5. Scrapy-redis改造scrapy实现分布式多进程爬取

    一.基本原理: Scrapy-Redis则是一个基于Redis的Scrapy分布式组件.它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule),并对爬取产生的项目(it ...

  6. xpath+多进程爬取网易云音乐热歌榜。

    用到的工具,外链转换工具 网易云网站直接打开源代码里面并没有对应的歌曲信息,需要对url做处理, 查看网站源代码路径:发现把里面的#号去掉会显示所有内容, 右键打开的源代码路径:view-source ...

  7. xpath+多进程爬取八零电子书百合之恋分类下所有小说。

    代码 # 需要的库 import requests from lxml import etree from multiprocessing import Pool import os # 请求头 he ...

  8. xpath+多进程爬取全书网纯爱耽美类别的所有小说。

    # 需要的库 import requests from lxml import etree from multiprocessing import Pool import os # 请求头 heade ...

  9. 使用Python爬取代理ip

    本文主要代码用于有代理网站http://www.kuaidaili.com/free/intr中的代理ip爬取,爬虫使用过程中需要输入含有代理ip的网页链接. 测试ip是否可以用 import tel ...

随机推荐

  1. CSS--抽屉(dig.chouti.com)页面

    一.设置整体页面宽度 一般写个样式命名为.d{}设置整体页面指定宽度和居中,京东命名为.w{},bootstrap里命名为.container{} 1 2 3 4 5 6 7 8 9 10 11 12 ...

  2. 2、awk的输出

    1.常见的输出格式整理 awk '{print "this is " $1, $2, $1*$2, NR, NF, $NF}' file1   ###字符输出,字段输出,运算输出, ...

  3. Mapper配置文件夹

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-// ...

  4. web大文件上传控件-设置附加参数-Xproer.HttpUploader6

    自定义附加字段在up6.js中定义,也可以不用定义: 注意: 1.附加字段必须是字符串类型. 2.如果附加字段的值包含中文,在上传前必须使用encodeURIComponent进行编码.     在引 ...

  5. 关于在datepicker中,只选年月

    有这么个需求,datepicker默认是选某个具体的日子的,但是现在只选到年月为止, solution: html如下: <div> <label for="startDa ...

  6. 警惕C#事件使用过程中的GC陷阱

    关于C#中的事件,园里已经有大量的文章对其内在实现做过剖析,如果还不甚了解的可以阅读这篇文章 通过Demo来细看C#事件的内在机制 虽然比较早,但非常清楚地展示了事件的内部机制,总结一下就是 1.事件 ...

  7. .net core 结合nlog使用Elasticsearch , Logstash, Kibana

    什么是ELK ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具 ...

  8. WinForm中的重绘 - 文本的重绘

    两种方式 TextRenderer.DrawText 注意:默认在每次绘制的文本左右有padding,即使参数中设置了TextFormatFlags.NoPadding也是一样,因此在分段绘制文本时( ...

  9. IDEA下载与安装

    IntelliJ IDEA号称当前Java开发效率最高的IDE工具. IntelliJ IDEA有两个版本:社区版(Community)和旗舰版(Ultimate). 社区版 是免费的.开源的,但功能 ...

  10. openstack组件服务的入口寻找方法

    在centos7系统上,安装openstack服务以后,可以通过以下命令,查找到该系统上,已经安装的openstack服务 [root@xzto01n010027244133 ~]# systemct ...