python解析omim網頁內容

2021-09-19 06:58:54 字數 1690 閱讀 8337

利用zip()函式把四個列表一對一的組合成乙個元組。

zip()函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。

利用map()函式對每乙個元素進行函式操作,用匿名函式提取text和去掉\n

map()是 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。

#python2 和python3 有差別,python3裡面,map(),zip()的返回值已經不再是list,而是iterators, 所以想要使用,只用將iterator 轉換成list 即可, 比如 list(map()) 

a = [1,2,3]

b = [4,5,6]

c = [4,5,6,7,8]

zipped = zip(a,b) # 打包為元組的列表 也可以zip(a,b,c)

[(1, 4), (2, 5), (3, 6)]

zip(a,c) # 元素個數與最短的列表一致

[(1, 4), (2, 5), (3, 6)]

zip(*zipped) # 與 zip 相反,*zipped 可理解為解壓,返回二維矩陣式

[(1, 2, 3), (4, 5, 6)]

omim robots.txt 設定了爬蟲策略,只允許 微軟必應 bingbot 和谷歌 googlebot 爬蟲獲取指定路徑內容。所以要進行爬取,需要進行設定,此處不講,我們只對獲得的網頁解析

#!/usr/bin/env python

#-*- encoding:utf-8-*-

import sys

reload(sys)

sys.setdefaultencoding('utf8')

from bs4 import beautifulsoup

output = open('./code/omim.txt','a')

html = open('c:/users/***x/desktop/code/omim.txt','r')

soup = beautifulsoup(html,'lxml')

all = soup.select('.mim-text-font')

id = soup.select('#allelicvariantsfold')

for i in id :

number = i.select('.mim-font')

ty = i.select('.lookup')

rs = i.select('.btn-group')

dec = i.select('p')

print len(dec)

zz= zip (number,ty,rs,dec)

for z in zz:

out= map(lambda x: x.text.strip('\n'),z)

result = '\t'.join(out[i] for i in range(len(out)))

output.write(result+'\n')

output.flush()

output.close()

python學習 網頁解析

python網頁解析工具,可以根據標籤特點獲取相應標籤中的內容。開始沒有找到beautifulsoap這個強大的工具,同時也想提公升程式的執行效率 自己的程式僅需執行一次 這裡自己實現了乙個可以根據html標籤獲取到網頁元素的程式,這個程式是基於查詢的形式對網頁解析,沒有對網頁元素進行分類和歸類。程...

scrapy預設模板解析網頁裡面的鏈結內容

前言 首先進入terminal中 1 建立乙個scrapy框架專案 scrapy startproject 專案名 2 建立爬蟲url cd 專案名 scrapy genspider itcast 1 在建立的爬蟲模組裡面填寫資訊 name 爬蟲的識別名稱,必須唯一,啟動爬蟲時使用 name xia...

網頁內搜尋(1)

請輸入專業名稱 autocomplete off class layui input id searchinput value div button class layui btn lay submit lay filter formdemo 搜尋專業 button div form id all ...