一.代理皮的简单使用

简单的看一二例子即可

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. Django--form生成select标签

    需求 Django--form表单中的select生成方法,如果select中的选项不固定,需要怎么操作. 速查 1.固定select选项 forms 1 2 3 class 表单类名称(forms. ...

  2. hdu 2211 杀人游戏

    设f(N,K)返回最后取出的编号 那么f(n,k)进行第一次选后,剩下n-n/k个人,这剩下的人里最后被取出的编号为f(n-n/k,k)记为x 那么它在前一次队列里的编号则是(x-1)/(k-1)+x ...

  3. 智能IC卡与终端(读卡器)之间的传输协议

    1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡 ...

  4. BBS后台发送邮件&修改文章

    一:Django发送邮件 在setting中配置 # EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST ...

  5. Kernel的意义

    在第7章最后一段讲到Kernel,Kernel就是用向量表示元素的和的乘积. Back in our discussion of linear regression, we had a problem ...

  6. Mac OS X 下android环境搭建

    安装jdk6.0版本以支持eclipse的安装 安装eclipse 安装jdk8.0版本,实际开发中用到的jdk 配置java环境变量 打开shell命令窗口(终端) 检测输入java -versio ...

  7. Oracle累计函数

    今天遇到一个客户的报表需求,在shipment的报表中要查看该shipment中的每个PO的采购数量,当前shipment的出货数量以及累计的所有出货数量. 要有累计的出货数,并且是要有顺序的累计出货 ...

  8. Eclipse平台下配置Go语言开发环境(Win7)

    <Go语言编程>中写到:“从功能和易用性等方面考虑, Eclipse+GoEclipse.LiteIDE这两个环境在所有IDE里面是表现最好的”,所以笔者打算采用Eclipse+GoEcl ...

  9. WinForm中自定义搜索框(水印、清空按钮、加载中图标)

    public partial class CustomSearchBar : TextBox { private readonly Label lblwaterText = new Label(); ...

  10. Kotlin 函数

    至于什么函数,在计算机里面就是一个密闭的执行程序的代码块(个人理解) 我们先来看看什么是函数 fun main(agrs : Array<String>) { println(" ...