資源簡介
baidu.py
代碼片段和文件信息
#coding:utf-8
#5.6
#獲取的url為真實url代碼中設置了timeout為3s
#所以有些結果得到的依舊不是真實網址,想獲取更多真實url可以增大timeout的值,但是無疑速度會更慢
import?sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
import?requests
import?urllib
import?urllib2
import?re
base_URL?=?‘http://www.baidu.com‘
URL?=?‘http://www.baidu.com/s?wd=‘
class?Baidu():
session?=?requests.Session()
#這個變量存儲當前頁的網頁代碼
curContent?=?‘‘
headers?=?{‘User-Agent‘:‘Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36‘+\
?‘(KHTML?like?Gecko)?Chrome/47.0.2526.106?Safari/537.36‘}
nextpage?=?‘‘
def?getContent(selfurl):
r?=?self.session.get(urlheaders?=?self.headers)
self.curContent?=?r.content
def?getHref(self):
pattern?=?re.compile(‘ ‘+.*?>(.*?)‘re.S)
items?=?re.findall(patternself.curContent)
return?items
#下面兩個函數是為了得到當前所處的頁數
def?getPageContent(selfwebcontent):
‘‘‘
這里已經將所有的關于該頁搜索結果中的頁碼信息都得到
可以在這里將其他頁碼的鏈接得到
‘‘‘
pattern?=?re.compile(‘(.*?)‘re.S)
pageContent?=?re.findall(patternwebcontent)
#?print?pageContent
pageContent?=?pageContent[0]
return?pageContent
def?getCurrentPage(self):
pageContent?=?self.getPageContent(self.curContent)
regx?=?r‘(\d)‘
pm?=?re.search(regxpageContent)
curPage?=?pm.group(1)
return?curPage
def?getHrefByPage(selfpage):
if?page?==?self.getCurrentPage():
print?“It‘s?the?page?you?want“
return
pageContent?=?self.getPageContent(self.curContent)
regx?=?re.compile(r‘.*?(\d)‘re.S)
pm?=?re.findall(regxpageContent)
for?item?in?pm:
if?int
- 上一篇:knn 字符識別 python
- 下一篇:knn_search.py
評論
共有 條評論