前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 代理爬取网站数据

Python 代理爬取网站数据

作者头像
Lansonli
发布2021-10-09 14:56:25
6440
发布2021-10-09 14:56:25
举报
文章被收录于专栏:Lansonli技术博客

代理IP通过https://www.kuaidaili.com/free/ 获取,我使用的的是http 协议的代理。根据自己需求选择http或者https 协议的页面。

访问量会有增长,但效果不是非常理想,后面找时间在研究下、废话不多说,直接上代码。

代码语言:javascript
复制
# -*- coding:utf-8 -*-

import requests

import random

import time

import re

user_agent_list=[
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
    'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
    'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
    'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
    'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
    'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',
    'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
]

count=0

def Get_proxy_ip():
    headers = {
    'Host': "www.kuaidaili.com",
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    'Accept': r'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'
    }
    req=requests.get(r'https://www.kuaidaili.com/free/inha/16/',headers=headers)
    html=req.text
    proxy_list=[]
    IP_list=re.findall(r'\d+\.\d+\.\d+\.\d+',html)
    port_lits=re.findall(r'<td data-title="PORT">\d+</td>',html)

    for i in range(len(IP_list)):
        ip=IP_list[i]
        port=re.sub(r'<td data-title="PORT">|</td>','',port_lits[i])
        proxy='%s:%s' %(ip,port)
        proxy_list.append(proxy)
    return proxy_list

def Proxy_read(proxy_list,user_agent_list,i):
    proxy_ip=proxy_list[i]
    print ('当前代理ip:%s'%proxy_ip)
    user_agent = random.choice(user_agent_list)
    print('当前代理user_agent:%s'%user_agent)
    sleep_time = random.randint(1,5)
    print('等待时间:%s s' %sleep_time)
    time.sleep(sleep_time)
    print('开始获取')
    headers = {
        'User-Agent': user_agent
    }

    proxies={
        'http': proxy_ip
    }

    url='https://www.baidu.com' #blog 地址

    try:
        req = requests.get(url, headers=headers, proxies=proxies, timeout=6,verify=False)
        html=req.text
        print (html)
    except Exception as e:
        print(e)
        print('******打开失败!******')
    else:
        global count
        count += 1
        print('OK!总计成功%s次!' % count)

if __name__ == '__main__':

    proxy_list = Get_proxy_ip()

    for i in range(100):

        Proxy_read(proxy_list, user_agent_list, i)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档