Python3爬蟲(1)小試牛刀

2021-08-17 20:39:44 字數 1468 閱讀 2855

最近學習了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 ...