最近學習了python3的爬蟲機制!也就是通過使用urllib模組傳送http請求來獲取網頁的html原始碼,然後使用正則匹配出自己想要收集的資訊!(注意python2中所用的模組不一樣)
下面小試牛刀,做了乙個例子!附上需求和原始碼!
儲存形式:(將從網頁上獲取到的資訊分行寫入.txt檔案中)
**邏輯
#引入urllib模組,用於發起http請求
from urllib import request
#引入re模組,用於正則匹配
import re
#建立乙個檔案物件(w+追加寫入模式)
file = open('ips.txt', 'w+', encoding='utf-8')
def get_html_66ip():
#通過定義headers中的user-agent偽裝成乙個browser,如果不定義headers,user-agent會被預設解析成python3 urllib
headers =
# 66**,全國**ip(2023年驗證ip,前89頁)
for page_num in range(1,90):
target = ''.format(page_num)
r_obj = request.request(url=target,headers=headers)
response = request.urlopen(r_obj)
html = response.read().decode('gbk')
# print(html)
pat_html = re.compile(r'(.*?)
(.*?)
(.*?)
(.*?)
(.*?)
',re.s)
#這裡注意使用findall取出的資料res是乙個列表,列表的每個元素是元組,即[('***','***x'),('***x','***xx')]
res = pat_html.findall(html)
#判斷匹配出的資訊,第一行表頭不要
ips =
for k,v in enumerate(res):
if k != 0:
#將元組轉成str,去除首尾的'('和')'寫入檔案
for v in ips:
file.write(str(v).lstrip('(').rstrip(')') + '\n')
#程序啟動宣告(程式從這裡開始執行)
if __name__ == '__main__':
#呼叫爬取def
get_html_66ip()
#關閉檔案物件
file.close()
1 小試牛刀 1
1.echo e 包含轉義序列的字串 2.彩色列印 文字 重置 0,黑 30,紅 31,綠 32,黃 33,藍 34,洋紅 35,青 36,白 37 背景 40,41,42,43,44,45,46,47 example 1 echo e e 1 31m zhangjing e 0m 紅字 2 ech...
python 演算法 小試牛刀
1.列印從1到100,碰到3倍數用fizz代替,碰到5倍數,用buzz代替,3和5的倍數,fizzbuzz代替 def func for i in range 1,101 if i 3 0 i 5 0 print fizzbuzz elif i 3 0 print fizz elif i 5 0 p...
Python小試牛刀 迴圈
斐波那契數列,數列前兩項為1,之後每一項都是前兩項之和。usr bin env python3 a,b 0,1 while b 100 print b a,b b,a b預設print輸出結果後會自動換行,如果不希望換行,只做間隔的話,就通過另乙個引數end來替換這個換行符 print a,end ...