python urllib2查詢資料

2022-07-04 16:09:15 字數 3204 閱讀 4051

最近為了更好的查詢老王python的外鏈,所以準備寫乙個python urllib2 查詢指令碼來查詢,一般查詢外鏈比較準確的工具還是yahoo的外鏈工具,但是有點不方便的就是,yahoo查出的外鏈要一頁一頁的翻,好累而且不好方便統計,我是想把**的外鏈全部讀取到檔案裡,這樣比較好在本地來進行統計。

廢話不說,上指令碼吧。

#encoding=utf-8

#@author:老王python

#@description:檢查**的外鏈

import

urllib

from

sgmllib

import

sgmlparser

import

reimport

sysinfolist={}

#結果列表

class

linkparser(sgmlparser

):'''抓取link列表的資訊'''

defreset(self

):sgmlparser

.reset(self)

self

.url=''

#鏈結文字

self

.li_check=0

self

.a_check=0

self

.jt_url=''

#具體url

self

.infolist={}

defstart_li(self

,tag

):'''檢測li開頭'''

iftag:if

tag[0][

1]=='sco5li0'

ortag[0

][1]==

'sco5li1'

:self

.li_check=1

defstart_a(self

,tag

):'''檢測a開頭'''

):'''處理空白文字'''

txt=

text

.strip()

iftxt

andself

.a_check

andtxt

!='快照'

:checkurl='

%s,%s'

% (self

.url

,self

.jt_url)

self

.infolist

[checkurl]=

txtif

txt=='':

return

defend_li(self

):self

.li_check=0

defend_a(self

):self

.a_check=0

numre=re

.compile(r'.+')#匹配總的記錄數

pnum=re

.compile(r'\d+')

checkurl==

urllib

.quote(checkurl)#請求位址

pageurl

=''% (checkurl)

content

=urllib

.urlopen(pageurl).

read()c=

numre

.search(content).

group(0)

totalnum

=int(pnum

.search(c).

group(0))#總的外鏈數

#一頁顯示50條

iftotalnum

%pagesize

:page

=totalnum

/pagesize

else

:page

= (totalnum

/pagesize)+1f

=file('a.txt'

,'w')

fork

inxrange(page

):parser

=linkparser()

url=

'%s&b=%s'

% (checkurl,k

*50)

print

'url*****====>'

,url

cstr

=urllib

.urlopen(url).

read()

parser

.feed(cstr)

parser

.close()

form

inparser

.infolist

:domain

,jt_url=m

.split(',')

print

'domain--------->'

,domain

print

'jt_url--------->'

,jt_urlt=

'url:

%s,jt_url:

%s,title:

%s\n

'% (domain

,jt_url

,parser

.infolist[m

].decode('utf-8').

encode('utf-8'))f.

write(t)f.

close()

Python urllib2使用總結

import urllib2 response urllib2.urlopen html response.read 這個過程就是基於簡單的請求 響應的模型 response urllib2.urlopen 實際上可以看作兩個步驟 1 我們向指定網域名稱傳送請求 request urllib2.re...

Python urllib2產生殭屍程序

最近發現,python 會產生很多殭屍程序,之前未發現,自從使用urllib2模組發http請求之後,便產生了大量殭屍程序,確定是由於urllib2產生,原始 如下 req urllib2.request url urllib2.urlopen req 最開始,想當然的任務,http請求不是長連線,...

python urllib2使用心得

python urllib2使用心得 1 http get請求 過程 獲取返回結果,關閉連線,列印結果 f urllib2.urlopen req,timeout 10 the page f.read f.close print the page 2 http get請求 包頭 paras toke...