針對上述過程,對於熟悉爬蟲的讀者來說,是不難完成將輸入的單詞的中文意思從網頁中提取出來的。筆者的**如下:
import requests
from bs4 import beautifulsoup
# get word from command line
word = input("enter a word (enter 'q' to exit): ")
# main body
while
word != 'q': # 'q' to exit
try:
# 利用get獲取輸入單詞的網頁資訊
r = requests.get(url=''%word)
# 利用beautifulsoup將獲取到的文字解析成html
soup = beautifulsoup(r.text, "lxml")
# 獲取字典的標籤內容
s = soup.find(class_='trans-container')('ul')[0]('li')
# 輸出字典的具體內容
foritem
in s:
ifitem.text:
print(item.text)
print('='*40+'\n')
except exception:
print("sorry, there is a error!\n")
finally:
word = input( "enter a word (enter 'q' to exit): ")
執行上述python**,結果如下:
上述過程無疑是簡單的,下面,我們增加一些新的功能,如下:
將python**打包成exe檔案;
在cmd中輸出單詞的中文意思時,輸出為彩色文字。
利用ctypes模組,我們可以對windows系統進行簡單操作,而利用pyinstaller模組,我們可以將自己的python**打包成exe檔案。
改修的python**如下:
import requests
from bs4 import beautifulsoup
import random
import ctypes
std_input_handle = -10
std_output_handle = -11
std_error_handle = -12
foreground_darkblue = 0x01
# 暗藍色
foreground_darkgreen = 0x02
# 暗綠色
foreground_darkskyblue = 0x03
# 暗天藍色
foreground_darkred = 0x04
# 暗紅色
foreground_darkpink = 0x05
# 暗粉紅色
foreground_darkyellow = 0x06
# 暗黃色
foreground_darkwhite = 0x07
# 暗白色
foreground_darkgray = 0x08
# 暗灰色
foreground_blue = 0x09
# 藍色
foreground_green = 0x0a
# 綠色
foreground_skyblue = 0x0b
# 天藍色
foreground_red = 0x0c
# 紅色
foreground_pink = 0x0d
# 粉紅色
foreground_yellow = 0x0e
# 黃色
foreground_white = 0x0f
# 白色
std_out_handle = ctypes.windll.kernel32.getstdhandle(std_output_handle)
# 設定文字顏色
defset_cmd_text_color
(color, handle=std_out_handle):
bool = ctypes.windll.kernel32.setconsoletextattribute(handle, color)
return bool
# 重置文字顏色為白色
defresetcolor
(): set_cmd_text_color(foreground_darkwhite)
# 以指定顏色輸出文字
defcprint
(mess, color):
color_dict =
set_cmd_text_color(color_dict[color])
print(mess)
resetcolor()
# 顏色列表
color_list = ['暗藍色','暗綠色','暗天藍色','暗紅色','暗粉紅色','暗黃色','暗白色','暗灰色',\
'藍色','綠色','天藍色','紅色','粉紅色','黃色','白色']
print('#'*60)
print('#'*60+'\n')
# get word from command line
word = input("enter a word (enter 'q' to exit): ")
# main body
while word != 'q': # 'q' to exit
try:
# 利用get獲取輸入單詞的網頁資訊
r = requests.get(url=''%word)
# 利用beautifulsoup將獲取到的文字解析成html
soup = beautifulsoup(r.text, "lxml")
# 獲取字典的標籤內容
s = soup.find(class_='trans-container')('ul')[0]('li')
# 隨機選擇輸出的顏色
random.shuffle(color_list)
# 輸出字典的具體內容
for item in s:
if item.text:
cprint(item.text, color_list[0])
print('='*40+'\n')
except exception:
print("sorry, there is a error!\n")
finally:
word = input( "enter a word (enter 'q' to exit): ")
利用pyinstaller模組,將上述程式打包為exe檔案。比如我們剛才的python**的檔名為english_2_chinese_dict.py,位於e盤下的eng_2_chn資料夾下,我們可以在cmd中先切換到e盤下eng_2_chn資料夾,再輸入以下命令:
pyinstaller -f english_2_chinese_dict.py
這樣就會生成一些檔案,如下圖:
我們想要的生成的exe檔案位於dist資料夾下,執行該exe檔案,並測試,如下:
這樣我們也就實現了上述新增的功能,能夠更加方便地執行我們的程式。怎麼樣,是不是覺得python爬蟲酷酷的?不知作為新手的你,有沒有一點心動呢?趕緊學起來吧,哈哈~~
python自製英漢詞典
作為一位python小白,無意間發現在jclian91發布的部落格中做了個爬取有道詞典的翻譯爬蟲,本著學習的態度,借鑑大佬的 自己也擼了串 完成了自己的第乙個爬蟲 新增了gui介面,新增了從漢翻英的功能。中用到的第三方庫自行通過pip install安裝 如下 python3 coding utf ...
爬蟲的乙個小案例 python實現英漢互譯
什麼是網路爬蟲?網路爬蟲又稱網路蜘蛛,是指按照某種規則在網路上爬取所需內容的指令碼程式。眾所周知,每個網頁通常包含其他網頁的入口,網路爬蟲則通過乙個 依次進入其他 獲取所需內容。乙個小案例 python實現英漢互譯 import urllib.request import urllib.parse ...
Python爬蟲之爬蟲概述
知識點 模擬瀏覽器,傳送請求,獲取響應 網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端 主要指瀏覽器 傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。知識點 了解 爬蟲的概念 爬蟲在網際網路世界中有很多的作用,比如 資料採集 抓取招聘 的招聘資訊 資料分析 挖掘...