python爬行動物集合360聯想詞搜尋

2021-09-07 01:27:11 字數 2363 閱讀 5950

正題例如以下:

語言:python2.7.6

模組:urllib,urllib2,re,time

目標:輸入隨意詞,抓到其聯想詞

版本號:w1

suggest_so(,,,,"},,,,,],"version":"a"});

**例如以下:

#coding:utf-8

import urllib

import urllib2

import re

import time

gjc = urllib.quote("科技")

url = "

callback=suggest_so&encodein=utf-8&encodeout=utf-8&format=json&fields=word,obdata&word="+gjc print url req = urllib2.request(url) html = urllib2.urlopen(req).read() unicodepage = html.decode("utf-8") #正規表示式,findall方法返回乙個列表 ss = re.findall('"word":\"(.*?)\"',unicodepage) for item in ss: print item

結果:

假設不加unicodepage = html.decode("utf-8") 。返回值會穿插一些亂碼,以下我們驗證下,我們做的對不正確,開啟360搜尋。輸入「科技」。結果例如以下:

好,大體框架已經實現,這是個最初版本號。還不能全然無限制使用。我們要做的是暢通無阻,那麼存在什麼問題呢?

2.請求過快也可能被遮蔽。所以要在每一次請求之後讓爬蟲歇息一下。這就是time.sleep()的作用

優化的**例如以下:

#coding:utf-8

#---------------------

# 程式:爬蟲採集360搜尋關聯詞

# 語言:python2.7

# 版本號:w1

#---------------------

import urllib

import urllib2

import re

import time

from random import choice

#ip**列表

iplist = ["14.29.117.36:80","222.66.115.229:80","59.46.72.245:8080"]

ip = choice(iplist)

#print ip

list = ["集團","科技","python"]

for m in list:

#quote將m轉變成url編碼

gjc = urllib.quote(m)

url = "callback=suggest_so&encodein=utf-8&encodeout=utf-8&format=json&fields=word,obdata&word="+gjc

#頭資訊

headers =

#使用ip**server

proxy_handler = urllib2.proxyhandler()

opener = urllib2.build_opener(proxy_handler)

urllib2.install_opener(opener)

req = urllib2.request(url)

for key in headers:

req.add_header(key,headers[key])

html = urllib2.urlopen(req).read()

#將其它編碼變成unicode編碼

unicodepage = html.decode("utf-8")

#正規表示式。findall方法返回乙個列表

ss = re.findall('"word":\"(.*?)\"',unicodepage)

for item in ss:

print item

#休眠2秒

time.sleep(2)

結果截圖:

3.輸出結果儲存txt文字

4.使用者輸入exit。程式退出

python3集合 Python 集合型別

一 集合型別簡介 1 集合 set 是由一組無序排列的元素組成的,集合中的成員稱為集合元素 2 集合型別分為可變集合和不可變集合,可變集合 set 可以新增 刪除元素,不可變集合 frozenset 則不可以 3 因為集合是由一組無序排列的元素組成的,因此也就沒有索引 切片 鍵的概念來訪問集合元素 ...

python3集合 Python3 集合

集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立格式 parame 或者set value 這裡演示的是去重功能 orange in basket 快速判斷元素是否在集合內 true c...

python3集合 Python3 集合

python3 集合 集合 set 是乙個無序的不重複元素序列。可以使用大括號或者set 函式建立集合,注意 建立乙個空集合必須用set 而不是,因為是用來建立乙個空字典。集合內建方法 add 為集合新增元素 例項 fruits.add orange print fruits 輸出結果為 clear...