婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊

python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊

熱門(mén)標(biāo)簽:地圖標(biāo)注面積 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 北京電銷(xiāo)外呼系統(tǒng)加盟 佛山400電話辦理 市場(chǎng)上的電銷(xiāo)機(jī)器人 朝陽(yáng)手機(jī)外呼系統(tǒng) 小蘇云呼電話機(jī)器人 儋州電話機(jī)器人 北瀚ai電銷(xiāo)機(jī)器人官網(wǎng)手機(jī)版

一、使用PyChram的正則

首先,小編講的不是爬取ip,而是講了解PyCharm的正則,這里講的正則不是Python的re模塊哈!
而是PyCharm的正則功能,我們?cè)赑yChram的界面上按上Ctrl+R,可以發(fā)現(xiàn),這里出現(xiàn)兩行輸入框

現(xiàn)在如果小編想把如下數(shù)據(jù)轉(zhuǎn)換成一個(gè)字典存儲(chǔ)

讀者也許會(huì)一個(gè)一去改,但是小編只需在上述的那兩個(gè)輸入框內(nèi),輸入一串字符串即可。

只需在第一個(gè)輸入框中,輸入(.*) : (.*)
在第二個(gè)輸入框中,輸入"$1":"$2",,看看效果如何

之后再給兩端分別一個(gè)花括號(hào)和取一個(gè)字典名稱(chēng)即可。

二、制作一個(gè)隨機(jī)User-Agent模塊

反爬措施中,有這樣一條,就是服務(wù)器會(huì)檢查請(qǐng)求的user-agent參數(shù)值,如果檢查的結(jié)果為python,那么服務(wù)器就知道這是爬蟲(chóng),為了避免被服務(wù)器發(fā)現(xiàn)這是爬蟲(chóng),通常user-agent參數(shù)值會(huì)設(shè)置瀏覽器的值,但是爬取一個(gè)網(wǎng)址時(shí),每次都需要查看網(wǎng)址network下面的內(nèi)容,顯得比較繁瑣,為什么不自定義一個(gè)隨機(jī)獲取user-agent的值模塊呢?這樣既可以減少查看network帶來(lái)的繁瑣,同時(shí)還可以避免服務(wù)器發(fā)現(xiàn)這是同一個(gè)user-agent發(fā)起多次請(qǐng)求。
說(shuō)了這么多,那么具體怎樣實(shí)現(xiàn)呢?

只需調(diào)用隨機(jī)模塊random的方法choice()即可,這個(gè)方法里面的參數(shù)類(lèi)型時(shí)列表類(lèi)型,具體參考代碼如下:

import random

class useragent(object):

    def getUserAgent(self):
        useragents=[
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
            'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)',
            'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',
        ]
        return random.choice(useragents)

這樣我們就可以隨機(jī)得到一個(gè)user-agent的值了。

三、最終實(shí)踐

3.1 爬取快代理上的ip

接下來(lái),就是最終實(shí)踐了,制作屬于自己的IP代理模塊。

那么,從哪里獲取IP呢?小編用的是快代理這個(gè)網(wǎng)址,網(wǎng)址鏈接為:https://www.kuaidaili.com/free/inha/1/。

怎樣提取IP呢?小編用的是xpath語(yǔ)法

參考代碼如下:

import requests
from crawlers.userAgent import useragent  # 導(dǎo)入自己自定義的類(lèi),主要作用為隨機(jī)取user-agent的值
from lxml import etree

url='https://www.kuaidaili.com/free/inha/1/'
headers={'user-agent':useragent().getUserAgent()}
rsp=requests.get(url=url,headers=headers)
HTML=etree.HTML(rsp.text)
infos=HTML.xpath("http://table[@class='table table-bordered table-striped']/tbody/tr")
for info in infos:
    print(info.xpath('./td[1]/text()'))   # ip
    print(info.xpath('./td[2]/text()'))   # ip對(duì)應(yīng)的端口 列表類(lèi)型

怎樣爬取多頁(yè)呢?分析快代理那個(gè)網(wǎng)址,可以發(fā)現(xiàn)https://www.kuaidaili.com/free/inha/{頁(yè)數(shù)}/ ,花括號(hào)里面就是頁(yè)數(shù),這個(gè)網(wǎng)址總頁(yè)數(shù)為4038,這里小編只爬取5頁(yè),并且開(kāi)始頁(yè)數(shù)取(1,3000)之間的隨機(jī)數(shù),但是如果for循環(huán)這個(gè)過(guò)程,運(yùn)行結(jié)果如下:

原來(lái)是請(qǐng)求過(guò)快的原因,只需在爬取1頁(yè)之后,休眠幾秒鐘即可解決。

3.2 驗(yàn)證爬取到的ip是否可用

這里直接用百度這個(gè)網(wǎng)址作為測(cè)試網(wǎng)址,主要代碼為:

url='https://www.baidu.com'
headers={'user-agent':useragent().getUserAgent()}
proxies={}   # ip ,這里只是講一下關(guān)鍵代碼,沒(méi)有給出具體IP
rsp=requests.get(url=url,headers=headers,proxies=proxies,time=0.2)  # timeout為超時(shí)時(shí)間

只需判斷rsp的狀態(tài)碼為200,如果是,把它添加到一個(gè)指定的列表中。

具體參考代碼小編已經(jīng)上傳到Gitee上,鏈接為:ip代理模塊

當(dāng)然讀者可用把這個(gè)文件保存到python\Lib文件夾下面,這樣就可用隨時(shí)隨地導(dǎo)入了。

3.3 實(shí)戰(zhàn):利用爬取到的ip訪問(wèn)CSDN博客網(wǎng)址1000次



上述出現(xiàn)那個(gè)錯(cuò)誤,小編上網(wǎng)搜索了一下原因,如下:

我想應(yīng)該是第1種原因,ip被封,我這里沒(méi)有設(shè)置超時(shí)時(shí)間,應(yīng)該不會(huì)出現(xiàn)程序請(qǐng)求速度過(guò)快。

四、總結(jié)

上述那個(gè)ip代理模塊還有很多的不足點(diǎn),比如用它去訪問(wèn)一些網(wǎng)址時(shí),不管運(yùn)行多少次,輸出的結(jié)果狀態(tài)碼不會(huì)時(shí)200,這也正常,畢竟免費(fèi)的ip并不是每個(gè)都能用的。如果要說(shuō)改進(jìn)的話,就是多爬取幾個(gè)不同ip代理網(wǎng)址,去重,這樣的結(jié)果肯定會(huì)比上述的那個(gè)ip代理模塊要好

到此這篇關(guān)于python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊的文章就介紹到這了,更多相關(guān)Python IP代理模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python利用proxybroker構(gòu)建爬蟲(chóng)免費(fèi)IP代理池的實(shí)現(xiàn)
  • Python爬蟲(chóng)設(shè)置ip代理過(guò)程解析
  • python如何基于redis實(shí)現(xiàn)ip代理池
  • python3 Scrapy爬蟲(chóng)框架ip代理配置的方法
  • Python爬蟲(chóng)動(dòng)態(tài)ip代理防止被封的方法
  • python實(shí)現(xiàn)ip代理池功能示例
  • python單例模式獲取IP代理的方法詳解
  • python3 requests中使用ip代理池隨機(jī)生成ip的實(shí)例

標(biāo)簽:寧夏 商丘 酒泉 龍巖 江蘇 定西 云南 金融催收

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊》,本文關(guān)鍵詞  python,爬蟲(chóng),實(shí)戰(zhàn),之,制作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 乾安县| 金寨县| 潼关县| 沙雅县| 崇左市| 平陆县| 鄂托克旗| 大安市| 景洪市| 甘南县| 太保市| 农安县| 民乐县| 达拉特旗| 奈曼旗| 景泰县| 花莲市| 大姚县| 遂平县| 拉孜县| 南通市| 津市市| 明水县| 通州区| 沙湾县| 阿瓦提县| 西充县| 望都县| 巴塘县| 林州市| 剑河县| 仁寿县| 修水县| 于田县| 化州市| 保靖县| 手机| 北安市| 揭东县| 宜春市| 龙江县|