Python爬蟲初探

2021-07-13 06:43:24 字數 2144 閱讀 6261

閒來無事研究了一下python的爬蟲技術,現在總結一下

testclass.py 檔案

#加上這個可以輸入中文

# -*- coding:utf-8 -*-

#匯入幾個內建庫

import urllib;

import urllib2;

import re;

import mytool;

#模擬瀏覽器和請求頭,否則顯示訪問出錯

user_agent = 'mozilla/4.0 (compatible; msie 5.5; windows nt)';

headers = ;

#對於class的使用還不了解

class spider:

def __init__(self):

#預設**

self.url = "";

#lowb english

self.tool = mytool.myzhengze();

def gethtml(self,url):

request = urllib2.request(url,headers=headers);

response = urllib2.urlopen(request);

#此處更改**編碼方式,有的是gbk的,可以檢視網頁源**的meta charset屬性

return response.read().decode('utf-8');

#得到**取出文字並寫入檔案

def getinfo(self,html):

#初步取出

#正規表示式解釋: *匹配1個除\n外的字元,*匹配前乙個字元0次貨無數次,?匹配前乙個字元0次或一次,也就是結束匹配

iden = '.*?

'; temp = re.compile(iden,re.s);

result = re.findall(temp,html);

for item in result:

middle = self.tool.myreplace(item);

hahah = self.tool.writetofile('端午節快樂.txt',middle);

print middle;

return result;

def getpic(self,html):

idenpic = '

temppic = re.compile(idenpic,re.s);

result = re.findall(temppic,html);

x = 0;

for item in result:

removesome = re.compile('

mytool.py 檔案

# -*- coding:utf-8 -*-

import re;

import sys;

reload(sys);

sys.setdefaultencoding('utf-8');

class myzhengze:

removeqiubai = re.compile('');

removediv = re.compile('|

') removebr = re.compile('

'); def __init__(self):

return none;

def myreplace(self,x):

x = re.sub(self.removeqiubai,"",x);

x = re.sub(self.removediv,"",x);

x = re.sub(self.removebr,'',x);

return x.strip();

def writetofile(self,filename,txt):

# 'w'是覆蓋模式 'a'是追加格式

f = open(filename,'a');

f.write(txt);

f.write('\n')

f.close();

參考:

**位址

明天端午了,祝大家端午快樂(也就我自己了..).近半年沒回過家今天晚上回去,想到回來之後跟高中上課般加班便頭痛不已,還是先享受下三天的假期吧.

python爬蟲初探

確保程式引用類庫是否是引用的該目錄,否則會出現pip install chardet 後,無法在專案中呼叫chardet的問題.可能在會出現pip安裝到 usr local lib python2.7 dist packages下,但是程式在 usr local lib python2.7 dist...

Python爬蟲初探

以下功能均在jupyter notebook上實現。python及相應爬蟲工具安裝請參考部落格 一 爬蟲介紹 1.非結構化資料 沒有固定格式 如網頁資料,必須通過etl extract 抽取 transformation 轉換 loading 組成 工具將數 據轉化為結構化資料才能取用。raw da...

Python爬蟲 初探多執行緒爬蟲

上篇,我們已經建立了乙個基本的爬蟲,用來抓取動態網頁的資訊。經過測試,爬蟲的速度太慢,我們需要改進。這篇我會介紹如何實現乙個多執行緒的python爬蟲來提高抓取網頁的效率。很多人都說因為python的gil gil規定每個時刻只能有乙個執行緒訪問python虛擬機器 限制,不應該用多執行緒,而應該用...