Python學習筆記55 爬蟲(隱藏)

2021-07-31 00:01:05 字數 1984 閱讀 7563

1.為了隱藏訪問方式,可以通過兩種方式:

方法一:直接設定乙個字典,作為引數傳給request,通過修改request的headers引數修改

head = {}

req = urllib.request.request(url,data,head)

#方法二:在request生成之後通過add header()方法修改

req = urllib.request.request(url,data)

2.為了更好的隱藏,可以使用延時或者**

1.延時訪問:

import urllib.request

import urllib.parse

import json

import time

while true:

content = input ('請輸入需要翻譯的內容(輸入"q!"退出程式):')

if(content == 'q'):

break

url = ''

data = {}

data['type'] = 'auto'

data['i'] = content

data['doctype'] = 'json'

data['xmlversion ']= '1.8'

data['keyfrom'] = 'fanyi.web'

data['ue'] = 'utf-8'

data['action'] = 'fy_by_clickbutton'

data['typoresult'] = 'true'

data = urllib.parse.urlencode(data).encode('utf-8')

'''#隱藏是python程式訪問的兩種方法

方法一:直接設定乙個字典,作為引數傳給request,通過修改request的headers引數修改

head = {}

req = urllib.request.request(url,data,head)

'''#方法二:在request生成之後通過add header()方法修改

req = urllib.request.request(url,data)

response = urllib.request.urlopen(req)

html = response.read().decode('utf-8')

target = json.loads(html)

target = target['translateresult'][0][0]['tgt']

print("翻譯結果:%s" % target)

time.sleep(5)

2.**

import urllib.request

import random

url = ''

#找個**ip的** 查詢一些免費ip

iplist = ['171.13.37.210:808','192.129.229.223:9001','61.237.131.59:80','222.94.144.86:808']

proxy_support = urllib.request.proxyhandler()

opener = urllib.request.build_opener(proxy_support)

urllib.request.install_opener(opener)

response = urllib.request.urlopen(url)

html = response.read().decode('utf-8')

print(html)

測試結果:有時可以,有時不行,正常

python爬蟲學習筆記

一 爬蟲思路 對於一般的文章而言,思路如下 1.通過主頁url獲取主頁原始碼,從主頁原始碼中獲得 標題 鏈結 如想要抓取知乎上的新聞,就獲得主頁上的新聞鏈結 2.繼續通過 標題 鏈結獲得 標題 原始碼,進而獲得 標題 中的內容。其中,當存在多頁時,先將每一頁都一樣的url寫下來,然後迴圈加入頁碼,具...

Python爬蟲學習筆記

1.使用build opener 修改報頭 headers user agent 定義變數headers儲存user agent資訊 opener urllib.request.build opener 建立opener物件並賦給變數 openeropener.addheaders headers ...

python爬蟲學習筆記

2.網頁資訊提取 beautiful soup庫 這是 學習北理的嵩山天老師mooc教程的筆記,是老師上課用的例項。import requests url try kv 將爬蟲偽裝成瀏覽器 r requests.get url,headers kv r.raise for status print ...