比較全面的百度百科爬蟲

2021-09-11 08:28:11 字數 2061 閱讀 3590

獲取詞條內容,根據html標籤逐一讀取內容,將需要的資訊儲存到list中,奇數行是屬性名,偶數行是屬性值,最終儲存到本地的txt檔案中儲存,儲存到本體的**沒有放出來。第二張圖的大段文字是乙個難點,文字的上一級標題可能是h2也可能是h3,暫時沒有想到好的方法同時保留兩種標題,目前的方法去掉了h3的標題。有興趣的朋友可以試試有沒有好的方法,

#coding=utf8

import re

import string

import urllib.request

from urllib.parse import quote

from bs4 import beautifulsoup

def download(url):

if url is none:

return none

headers = \]')

# url

#名稱title_node = soup.find('dd', class_='lemmawgt-lemmatitle-title').find('h1')

item_name = title_node.get_text().strip()

#描述summary_node = soup.find('div', class_='lemma-summary')

text = regex.sub('',summary_node.get_text().strip()).replace('\n','').strip()

#基本資訊

basic_name = soup.findall('dt',class_='basicinfo-item name')

basic_value = soup.findall('dd',class_='basicinfo-item value')

for i in range(len(basic_name)):

name = str(basic_name[i].get_text()).replace('\xa0','').strip()+':'

value = str(basic_value[i].get_text()).replace('\xa0','').strip()

#去掉[1][12-13]這樣的注釋

value = regex.sub('',value).strip()

#去除中的文字

tags = soup.findall('div',class_='lemma-picture text-pic layout-right')

for tag in tags:

tag.clear()

#去掉前面的描述,防止對解析後面的文字造成干擾

summary_node.clear()

#大段的描述

paras = soup.findall('div', class_='para')

#遍歷para標籤,尋找上乙個h2標籤作為屬性名,h2之間的文字作為屬性值

temp_h2 = paras[0].find_previous('h2').get_text().replace(item_name,'')

temp_para = ''

for i in range(len(paras)):

text = paras[i].get_text()

text = regex.sub('',text).strip().replace('\n','')

h2 = paras[i].find_previous('h2').get_text().replace(item_name,'')

if h2 == temp_h2:

temp_para += text

else:

temp_para = text

temp_h2 = h2

if i == len(paras) - 1:

return result

執行爬蟲,在本地的結果如下圖。

爬蟲本身還有很多不足,缺失了詞條的很多資訊,後面還會進一步完善。

比較 互動百科與百度百科

互動百科,雖然作為國內較大的百科 之一,但是,它的地位卻一直是較為尷尬的,因為互動百科的標題雖然是 國內最大的百科網 可以這個最大必須除開百科。互動百科,相對於百科來說,劣勢還是不少的,其主要體現在幾個方面 1.先天不足。百科作為旗下產品之一,品牌大 網域名稱優勢存在明顯優勢,在平台上,自己的產品無...

百度百科爬蟲PHP

header content type text html charset utf 8 接受前台資料 data id post data id url data id var dump url ch curl init curl setopt ch,curlopt url,url curl seto...

AnimateWindow 百度百科

animatewindow 開放分類 程式設計 計算機 api 函式功能 該函式能在顯示與隱藏視窗時能產生特殊的效果。有兩種型別的動畫效果 滾動動畫和滑動動畫。函式原型 bool animatewindow hwnd hwnd,dword dwtime,dword dwflags 引數 hwnd 指...