使用Python爬取网页数据

使用python结合各种工具包对网页信息进行爬取,使用起来非常方便

# -*- coding: utf-8 -*-
"""
Created on Mon Apr  6 15:29:40 2020

@author: lujia
"""
# 爬取ip代理,构建ip代理池
# requests
# parsel

import requests # pip install requests
import parsel
import time
import random
import pandas as pd

proxies_list = []
for page in range(1,3):
    time.sleep(random.random()*5) # 防连续爬取机制,所以要加随机延迟
    print('正在获取第{}页的数据'.format(page))
    # 爬虫的一般思路
    # 1、分析目标网页,确定爬取的url路径,headers参数
    base_url = 'https://www.kuaidaili.com/free/inha/{}/'.format(str(page))
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'}
    
    # 2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据
    response = requests.get(base_url, headers = headers)
    #print(response.request.headers)
    data = response.text
    #print(data)
    #ip格式 {"协议格式":"ip:端口"}
    # 3、解析数据 -- parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理
    # 转换数据类型
    html_data = parsel.Selector(data)
    # 数据解析
    parsel_list = html_data.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
    # 循环遍历
    for tr in parsel_list:
        dict_proxies = {}
        http_type = tr.xpath('./td[4]/text()').extract_first() # 协议类型
        ip_num = tr.xpath('./td[1]/text()').extract_first() # 协议类型
        ip_port = tr.xpath('./td[2]/text()').extract_first() # 协议类型
        # 构建ip字典
        dict_proxies['type'] = http_type
        dict_proxies['IP'] = ip_num
        dict_proxies['PORT'] = ip_port
        proxies_list.append(dict_proxies)
        #print(http_type,ip_num,ip_port)
print('最终获取的数据: ',proxies_list)
print('获取到的ip代理数量: ', len(proxies_list))
# 4、保存数据
filename = '1.xlsx'
print('正在导出excel文件:',filename)
df = pd.DataFrame(proxies_list)
df.to_excel(filename, index=False)
print('导出完毕!')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值