Python爬蟲入門一

2021-07-13 12:32:53 字數 2876 閱讀 5390

作為入門學習,我選擇了乙個靜態**:生物資訊交流分享論壇(public library of bioinformatics (plob));

第一次嘗試,只抓取網頁文字部分。

安裝requests庫和bs4

前者用來鏈結**和處理http協議;後者將網頁變成結構化資料,方便抓取。

easy_install requests

easy_install beautifulsoup4

#!/usr/bin/env python     #unix檔案頭,windows可以不用

# -*- coding: utf-8 -*- #指定編碼,處理中文還是要加的

import sys

reload(sys)

sys.setdefaultencoding("utf-8") #這兩行是在遇到以下報錯找到的解決辦法(unicodeencodeerror: 'ascii' codec can't encode characters in position 32-34: ordinal not in range(128))

from bs4 import beautifulsoup

import requests

defget_submenu

(url):

#定義乙個獲取主頁下sub menu**的函式

# url = ""

""" :rtype : basestring

"""url_lis =

r = requests.get(url) #get方法獲取網頁

soup = beautifulsoup(r.text, "html.parser")#解析網頁

data = soup.find_all("ul", "sub-menu")#擷取ul標籤下,class="sub-menu"的內容

for d in data[0].find_all("a"): #擷取子標籤中內容

return url_lis

defget_texturl

(url):

# url = "category/bioinformatics"

""" :rtype : basestring

"""text_url =

r = requests.get(url)

soup = beautifulsoup(r.text, "html.parser")

data = soup.find(id="content").find_all("h2")

for d in data:

return text_url

defget_text

(url):

#獲取文章下標題,發布時間及正文部分文字函式

# type: (url) -> string

r = requests.get(url)

soup = beautifulsoup(r.text, "html.parser")

title = soup.title.string.split("|")[0] #獲取文章標題

date = soup.find_all("span", "date")[0].get_text() #獲取文章發布時間

aa = soup.find(id="entry") #定位到正文部分

s = ""

for a in aa.strings: #獲取文章文字部分

a = a.rstrip()

ifnot a:

s += "\n"

else:

s = s + a

text = s

return title, date, text.strip()

##函式已經寫好,就差抓取了

url = ""

sub_menu = get_submenu(url)#獲取sub menu

for group in sub_menu:

group_url = group[0]

group_text = group[1]

w = open("plob/%s.txt" % group_text, "w")#首先需要建好plob資料夾,將各個子類抓取到的文章內容寫到乙個txt檔案中

aa = group_url

print aa

for ss in text_urllis:

title = get_text(ss)[0]

date = get_text(ss)[1]

text = get_text(ss)[-1]

w.write("##== %s ==##\n#= %s =#\n%s\n\n" % (title, date, text))#將文章寫進檔案

for page in range(2, 100):

aa = group_url+ "/page/" +str(page)#翻頁

if2 == requests.get(group_url+"/page/"+str(page)).status_code/100:#翻頁成功則繼續

print aa

text_urllis = get_texturl(aa)

for ss in text_urllis:

title = get_text(ss)[0]

date = get_text(ss)[1]

text = get_text(ss)[-1]

w.write("##== %s ==##\n#= %s =#\n%s\n\n" % (title, date, text))

else:#翻頁不成功則退出,進下乙個sub menu抓取

break

w.close()

Python爬蟲入門 一

python版本 2.7 首先爬蟲是什麼?網路爬蟲 又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者 是一種按照一定的規則,自動的抓取全球資訊網資訊的程式或者指令碼。根據我的經驗,要學習python爬蟲,我們要學習的共有以下幾點 首先,我們要用python寫爬蟲,肯定要了解p...

python 爬蟲入門 一)

今天學了python爬蟲,很有意思,寫一下部落格記錄一下學習過程。最基本的爬蟲僅需要urllib庫,re庫和chardet庫 urllib庫是python內建的處理網路請求的庫。對於基本的爬蟲我們僅僅需要使用他的內部模組urllib.requset。urllib.request中所要使用的函式 ur...

python爬蟲入門(一)

1.什麼是爬蟲 2.爬蟲的核心 3.爬蟲的語言 4.爬蟲分類 聚焦爬蟲 就是現在我們這些爬蟲程式設計師所進行的工作,就是根據客戶的需求,爬取指定 的特定內容。1.首先要理解什麼是http https協議 2.python基礎知識 3.開發工具 4.抓包工具 上面的 只能簡單抓取網頁,一旦遇到需要請求...