前言
本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理,
Python爬蟲、資料分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
前文內容
Python爬蟲新手入門教學(一):爬取豆瓣電影排行資訊
Python爬蟲新手入門教學(二):爬取小說
Python爬蟲新手入門教學(三):爬取鏈家二手房資料
Python爬蟲新手入門教學(四):爬取前程無憂招聘資訊
Python爬蟲新手入門教學(五):爬取B站視頻彈幕
Python爬蟲新手入門教學(六):制作詞云圖
Python爬蟲新手入門教學(七):爬取騰訊視頻彈幕
Python爬蟲新手入門教學(八):爬取論壇文章保存成PDF
Python爬蟲新手入門教學(九):多執行緒爬蟲案例講解
Python爬蟲新手入門教學(十):爬取彼岸4K超清壁紙
Python爬蟲新手入門教學(十一):最近王者榮耀皮膚爬取
Python爬蟲新手入門教學(十二):英雄聯盟最新皮膚爬取
Python爬蟲新手入門教學(十三):爬取高質量超清壁紙
Python爬蟲新手入門教程(十四):爬取有聲小說網站資料
Python爬蟲新手入門教學(十五):Python爬取某音樂網站的排行榜歌曲
Python爬蟲新手入門教學(十六):爬取網站音樂素材
Python爬蟲新手入門教學(十七):爬取好看小視頻
Python爬蟲新手入門教學(十八):爬取yy全站小視頻
基本開發環境
- Python 3.6
- Pycharm
相關模塊的使用
import requests # 第三方模塊 import parsel import time # 時間模塊
安裝Python并添加到環境變數,pip安裝需要的相關模塊即可,
一、確定目標需求
獲取代理IP地址,埠然后對IP進行檢測
二、網站資料分析
網站是靜態網頁,是可以直接獲取資料的,
根據re、xpath或者css選擇器 都是可以提取資料的,還是比較簡單的,爬取IP主要是因為在使用爬蟲頻繁抓取資料的時候,某些網站是比較容易被封IP的,
雖然網站有很多關于免費的IP代理可以使用,但是基本上都是用不了的,
完整代碼
import requests # 第三方模塊 import parsel import time # 時間模塊 def check_ip(proxies_list): """檢測代理ip的可用性""" use_proxy = [] for ip in proxies_list: try: response = requests.get(url='https://www.baidu.com', proxies=ip, timeout=2) if response.status_code == 200: use_proxy.append(ip) except Exception as e: print('當前代理ip: ', ip, '請求超時, 檢測不合格!!!') else: print('當前代理ip: ', ip, '檢測通過') return use_proxy proxy_list = [] for page in range(1, 11): time.sleep(0.5) print(f'==================正在抓取第{page}頁資料================') # 1.確定資料所在地址<url>(分析網頁性質<靜態網頁\動態網頁>) url = f'http://www.ip3366.net/?stype=1&page={page}' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'} # 2.發送網路請求 response = requests.get(url=url, headers=headers) html_data = response.text # str # print(html_data) # 3.決議資料 # 3.1 轉換資料型別 selector = parsel.Selector(html_data) # 3.2 資料提取 trs = selector.xpath('//table[@]/tbody/tr') # tr """ # 代理ip的結構 proxies_dict = { "http": "http://" + ip:埠, "https": "http://" + ip:埠, } """ for tr in trs: ip_num = tr.xpath('./td[1]/text()').get() ip_port = tr.xpath('./td[2]/text()').get() # print(ip_num, ip_port) ip_proxy = ip_num + ':' + ip_port # print(ip_proxy) proxies_dict = { 'http': "http://" + ip_proxy, 'https': "https://" + ip_proxy } # 4.資料的保存 proxy_list.append(proxies_dict) print('保存成功:', proxies_dict) print(proxy_list) print('獲取到的代理ip數量: ', len(proxy_list)) print('============================正在檢測代理===================================') can_use = check_ip(proxy_list) print('可用代理:', can_use) print('可用代理數量:', len(can_use))
爬取了100IP代理,最終可以使用的就只有一個,事實證明還是付費的香
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262374.html
標籤:其他
下一篇:spring配置bean

