導航:首頁 > 編程語言 > python抓取文章並翻譯

python抓取文章並翻譯

發布時間:2023-03-14 22:47:31

python抓取網頁中文信息

#-*-coding:utf-8-*-
importurllib
importre
#使用正則表達式限定抓取的網頁地址
regex=r'<ahref="(.+?)"target="_blank"><strongclass="'
pat=re.compile(regex)
page=1
url="

info=urllib.urlopen(url).read()
Sub_pages=re.findall(pat,info)
#獲得網址中所有產品信息
regex=r'<td>(.+?)&nbsp;</td>'
pat=re.compile(regex)
forpageinSub_pages:
content=urllib.urlopen(page).read()
info=re.findall(pat,content)
print' '.join(info)#改成這樣試試

㈡ 如何使用python爬取知乎數據並做簡單分析

一、使用的技術棧:
爬蟲:python27 +requests+json+bs4+time
分析工具: ELK套件
開發工具:pycharm
數據成果簡單的可視化分析
1.性別分布
0 綠色代表的是男性 ^ . ^
1 代表的是女性
-1 性別不確定
可見知乎的用戶男性頗多。
二、粉絲最多的top30
粉絲最多的前三十名:依次是張佳瑋、李開復、黃繼新等等,去知乎上查這些人,也差不多這個排名,說明爬取的數據具有一定的說服力。
三、寫文章最多的top30
四、爬蟲架構
爬蟲架構圖如下:
說明:
選擇一個活躍的用戶(比如李開復)的url作為入口url.並將已爬取的url存在set中。
抓取內容,並解析該用戶的關注的用戶的列表url,添加這些url到另一個set中,並用已爬取的url作為過濾。
解析該用戶的個人信息,並存取到本地磁碟。
logstash取實時的獲取本地磁碟的用戶數據,並給elsticsearchkibana和elasticsearch配合,將數據轉換成用戶友好的可視化圖形。
五、編碼
爬取一個url:
解析內容:
存本地文件:
代碼說明:
* 需要修改獲取requests請求頭的authorization。
* 需要修改你的文件存儲路徑。
源碼下載:點擊這里,記得star哦!https : // github . com/forezp/ZhihuSpiderMan六、如何獲取authorization
打開chorme,打開https : // www. hu .com/,
登陸,首頁隨便找個用戶,進入他的個人主頁,F12(或滑鼠右鍵,點檢查)七、可改進的地方
可增加線程池,提高爬蟲效率
存儲url的時候我才用的set(),並且採用緩存策略,最多隻存2000個url,防止內存不夠,其實可以存在redis中。
存儲爬取後的用戶我說採取的是本地文件的方式,更好的方式應該是存在mongodb中。
對爬取的用戶應該有一個信息的過濾,比如用戶的粉絲數需要大與100或者參與話題數大於10等才存儲。防止抓取了過多的僵屍用戶。
八、關於ELK套件
關於elk的套件安裝就不討論了,具體見官網就行了。網站:https : // www . elastic . co/另外logstash的配置文件如下:
從爬取的用戶數據可分析的地方很多,比如地域、學歷、年齡等等,我就不一一列舉了。另外,我覺得爬蟲是一件非常有意思的事情,在這個內容消費升級的年代,如何在廣闊的互聯網的數據海洋中挖掘有價值的數據,是一件值得思考和需不斷踐行的事情。

㈢ 如何用python寫爬蟲來獲取網頁中所有的文章以及關鍵詞

所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來,保存到本地。
類似於使用程序模擬IE瀏覽器的功能,把URL作為HTTP請求的內容發送到伺服器端, 然後讀取伺服器端的響應資源。

在Python中,我們使用urllib2這個組件來抓取網頁。
urllib2是Python的一個獲取URLs(Uniform Resource Locators)的組件。

它以urlopen函數的形式提供了一個非常簡單的介面。

最簡單的urllib2的應用代碼只需要四行。

我們新建一個文件urllib2_test01.py來感受一下urllib2的作用:

import urllib2
response = urllib2.urlopen('http://www..com/')
html = response.read()
print html

按下F5可以看到運行的結果:

我們可以打開網路主頁,右擊,選擇查看源代碼(火狐OR谷歌瀏覽器均可),會發現也是完全一樣的內容。

也就是說,上面這四行代碼將我們訪問網路時瀏覽器收到的代碼們全部列印了出來。

這就是一個最簡單的urllib2的例子。

除了"http:",URL同樣可以使用"ftp:","file:"等等來替代。

HTTP是基於請求和應答機制的:

客戶端提出請求,服務端提供應答。

urllib2用一個Request對象來映射你提出的HTTP請求。

在它最簡單的使用形式中你將用你要請求的地址創建一個Request對象,

通過調用urlopen並傳入Request對象,將返回一個相關請求response對象,

這個應答對象如同一個文件對象,所以你可以在Response中調用.read()。

我們新建一個文件urllib2_test02.py來感受一下:

import urllib2
req = urllib2.Request('http://www..com')
response = urllib2.urlopen(req)
the_page = response.read()
print the_page

可以看到輸出的內容和test01是一樣的。

urllib2使用相同的介面處理所有的URL頭。例如你可以像下面那樣創建一個ftp請求。

req = urllib2.Request('ftp://example.com/')

在HTTP請求時,允許你做額外的兩件事。

1.發送data表單數據

這個內容相信做過Web端的都不會陌生,

有時候你希望發送一些數據到URL(通常URL與CGI[通用網關介面]腳本,或其他WEB應用程序掛接)。

在HTTP中,這個經常使用熟知的POST請求發送。

這個通常在你提交一個HTML表單時由你的瀏覽器來做。

並不是所有的POSTs都來源於表單,你能夠使用POST提交任意的數據到你自己的程序。

一般的HTML表單,data需要編碼成標准形式。然後做為data參數傳到Request對象。

編碼工作使用urllib的函數而非urllib2。

我們新建一個文件urllib2_test03.py來感受一下:

import urllib
import urllib2
url = 'http://www.someserver.com/register.cgi'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
data = urllib.urlencode(values) # 編碼工作
req = urllib2.Request(url, data) # 發送請求同時傳data表單
response = urllib2.urlopen(req) #接受反饋的信息
the_page = response.read() #讀取反饋的內容

如果沒有傳送data參數,urllib2使用GET方式的請求。

GET和POST請求的不同之處是POST請求通常有"副作用",

它們會由於某種途徑改變系統狀態(例如提交成堆垃圾到你的門口)。

Data同樣可以通過在Get請求的URL本身上面編碼來傳送。

import urllib2
import urllib
data = {}
data['name'] = 'WHY'
data['location'] = 'SDU'
data['language'] = 'Python'
url_values = urllib.urlencode(data)
print url_values
name=Somebody+Here&language=Python&location=Northampton
url = 'http://www.example.com/example.cgi'
full_url = url + '?' + url_values
data = urllib2.open(full_url)

這樣就實現了Data數據的Get傳送。

2.設置Headers到http請求

有一些站點不喜歡被程序(非人為訪問)訪問,或者發送不同版本的內容到不同的瀏覽器。

默認的urllib2把自己作為「Python-urllib/x.y」(x和y是Python主版本和次版本號,例如Python-urllib/2.7),

這個身份可能會讓站點迷惑,或者乾脆不工作。

瀏覽器確認自己身份是通過User-Agent頭,當你創建了一個請求對象,你可以給他一個包含頭數據的字典。

下面的例子發送跟上面一樣的內容,但把自身模擬成Internet Explorer。

(多謝大家的提醒,現在這個Demo已經不可用了,不過原理還是那樣的)。

import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()

以上就是python利用urllib2通過指定的URL抓取網頁內容的全部內容,非常簡單吧,希望對大家能有所幫助。

㈣ python語言翻譯的過程是

「輸入文本」—「翻譯」—「得到譯文」。詳細步驟如下:
1、先輸入文字。
2、首先調用兩個需要到的第三方庫,設置請求頭,因為網路翻譯反爬機制,經過觀察只加密了sign數據,由代碼計算,將js文件保存在根目錄下。
3、設置data參數,獲取cookies,發送 post請求,返回的是經過『utf-8』編碼後的字元串,我們要對其進行解碼,並且轉化為字典,直接對數據進行類型轉換會報錯「NameError: name 'null' is not defined」。
4、在數據(字典)中將我們要的結果提取出來。

㈤ 如何用Python爬蟲抓取網頁內容

首先,你要安裝requests和BeautifulSoup4,然後執行如下代碼.

importrequests
frombs4importBeautifulSoup

iurl='http://news.sina.com.cn/c/nd/2017-08-03/doc-ifyitapp0128744.shtml'

res=requests.get(iurl)

res.encoding='utf-8'

#print(len(res.text))

soup=BeautifulSoup(res.text,'html.parser')

#標題
H1=soup.select('#artibodyTitle')[0].text

#來源
time_source=soup.select('.time-source')[0].text


#來源
origin=soup.select('#artibodyp')[0].text.strip()

#原標題
oriTitle=soup.select('#artibodyp')[1].text.strip()

#內容
raw_content=soup.select('#artibodyp')[2:19]
content=[]
forparagraphinraw_content:
content.append(paragraph.text.strip())
'@'.join(content)
#責任編輯
ae=soup.select('.article-editor')[0].text

這樣就可以了

㈥ python怎麼抓取微信閱

抓取微信公眾號的文章

一.思路分析

目前所知曉的能夠抓取的方法有:

1、微信APP中微信公眾號文章鏈接的直接抓取(http://mp.weixin.qq.com/s?__biz=MjM5MzU4ODk2MA==&mid=2735446906&idx=1&sn=&scene=0#rd)


2、通過微信合作方搜狗搜索引擎(http://weixin.sogou.com/),發送相應請求來間接抓取

第1種方法中,這種鏈接不太好獲取,而且他的規律不是特別清晰。

因此本文採用的是方法2----通過給 weixin.sogou.com 發送即時請求來實時解析抓取數據並保存到本地。

二.爬取過程

1、首先在搜狗的微信搜索頁面測試一下,這樣能夠讓我們的思路更加清晰


在搜索引擎上使用微信公眾號英文名進行「搜公眾號」操作(因為公眾號英文名是公眾號唯一的,而中文名可能會有重復,同時公眾號名字一定要完全正確,不然可能搜到很多東西,這樣我們可以減少數據的篩選工作,只要找到這個唯一英文名對應的那條數據即可),即發送請求到'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&_sug_=n&_sug_type_= ' % 'python',並從頁面中解析出搜索結果公眾號對應的主頁跳轉鏈接。

2.獲取主頁入口內容

使用request , urllib,urllib2,或者直接使用webdriver+phantomjs等都可以

這里使用的是request.get()的方法獲取入口網頁內容

[python]view plain

㈦ 如何用python批量翻譯文本

# coding=utf-8
#authority:bing
#2017-7-18
import httplib
import md5
import urllib
import urllib2
import random
# import sys
# reload(sys)
# sys.setdefaultencoding('utf8')
#
appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41'
httpClient = None
myurl = '/api/trans/vip/translate'
f = open("1.csv", 'r')
q = f.read(20000)#最多讀這么多,再多點就會出問題。
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)
sign = appid + q + str(salt) + secretKey
m1 = md5.new()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
try:
httpClient = httplib.HTTPConnection('api.fanyi..com')
httpClient.request('GET', myurl)
# response是HTTPResponse對象
response = httpClient.getresponse()
cc = response.read()
ccc = cc.decode("unicode_escape")
ccc = ccc.encode("utf-8")
file_object = open('thefile.txt', 'w')
file_object.write(ccc)
file_object.close()
except Exception, e:
print e
finally:
if httpClient:
httpClient.close()
f.close()

閱讀全文

與python抓取文章並翻譯相關的資料

熱點內容
義烏市聯DNS伺服器地址 瀏覽:669
App二級頁面怎麼做 瀏覽:956
提高pdf清晰度 瀏覽:979
伺服器網卡mac地址怎麼查 瀏覽:114
裁決之地伺服器為什麼這么卡 瀏覽:597
民生app怎麼查保險 瀏覽:467
單片機藍牙驅動代碼 瀏覽:467
php實現多選後公開 瀏覽:645
map中的值為數組的怎麼編程 瀏覽:261
加密貨幣怎麼登錄 瀏覽:1002
如何看本機伺服器實例名 瀏覽:388
變頻器加密密碼 瀏覽:796
美國銀行加密市場 瀏覽:384
我的世界伺服器如何tp玩家 瀏覽:26
app下載統計怎麼找 瀏覽:264
荔枝app怎麼看適合自己的發型 瀏覽:371
魔獸世界client文件夾 瀏覽:541
解壓音樂輕松入睡 瀏覽:272
c盤文件夾卡頓怎麼辦 瀏覽:450
增量調制編解碼實驗數據 瀏覽:763