一.代理皮的简单使用

简单的看一二例子即可

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()

 

版权声明:本文为tjp40922原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tjp40922/p/10444015.html