爬蟲實踐 爬取百度貼吧內容

2022-09-15 19:36:10 字數 2961 閱讀 6534

貼吧位址 :

python版本 : 3.6

瀏覽器: chrome

從網上爬下特定頁碼的網頁

對於爬下的頁面內容進行簡單的篩選分析

找到每一篇帖子的 標題、發帖人、發帖時間

將結果儲存到文字。

二、分析:

位址中這些都是中文字元,

%e7%94%9f%e6%b4%bb%e5%a4%a7%e7%88%86%e7%82%b8

在編碼之後就是: 生活大** 。

接著翻到貼吧的第二頁:

url:&pn=50`

這下就能通過簡單的url修改,達到翻頁的效果了。

開啟控制台,使用模擬點選工具快速定位到乙個單獨帖子的位置。(左上角的滑鼠箭頭圖示)

仔細觀察一下,發現每個帖子的內容都包裹在乙個li標籤內:

這樣只要快速找出所有的符合規則的標籤,

在進一步分析裡面的內容,最後篩選出資料就可以了。

四、**部分

1.抓取網頁的函式

import

requests

from bs4 import

beautifulsoup

import

time

#定義抓取頁面的函式

defget_html(url):

try:

r = requests.get(url,timeout=30) #

第二個引數為超時設定

r.raise_for_status() #

如果狀態碼不是200 則應發httoerror異常##

r.encoding = '

utf-8

'return

r.text

except

:

return

"error

"

2.獲取頁面內容的函式

def

get_content(url):

comments = #

初始化乙個列表來儲存所有的帖子資訊

html = get_html(url) #

soup = beautifulsoup(html,'

lxml')

litags = soup.find_all('

li', class_='

j_thread_list clearfix')

#通過迴圈找到每個帖子裡需要的資訊

for li in

litags:

comment = {} #

初始化乙個字典來儲存文章資訊

#try:

comment['

title

'] = li.find('

a', class_='

j_th_tit

').text.strip()

comment[

'name

'] = li.find('

span

', class_='

tb_icon_author

').text.strip()

comment[

'time

'] = li.find('

span

', class_='

pull-right is_show_create_time

').text.strip()

#except:

#print('crawed error!')

return comments

3.輸出到檔案的函式

def

outfile(comments):

with open(

'test.txt

','a+

',encoding='

utf-8

') as f:

for comment in

comments:

f.write(

''.format(comment['

title

'],comment['

name

'],comment['

time

']))

print('

當前頁面已爬取完成

')

4.主函式呼叫

def

main(base_url,deep):

url_list = #

將所有待爬取的url存入列表

for i in

range(0,deep):

&pn=

' + str(50 *i))

print('')

#迴圈寫入所有的資料

for url in

url_list:

content =get_content(url)

outfile(content)

print('

所有資訊都已儲存完畢!')

base_url = '

'deep = 100 #

設定需要爬取的頁面數量

if__name__ == '

__main__':

main(base_url,deep)

5.爬取結果

利用爬蟲爬取百度貼吧內容

coding utf 8 識別中文注釋的意思 import urllib.request 匯入urllib包中的request模組,主要是獲取網頁內容 def load page url 傳送url請求 返回url請求的靜態html頁面 user agent mozilla 5.0 windows ...

爬蟲爬取百度貼吧 python

本爬蟲是在pycharm中編寫完成,伺服器環境是ubuntu16.04,使用語言是python3,匯入的模組包是requests模組 匯入模組 import requests class tiebaspider object def init self self.base url self.head...

爬取百度貼吧

import urllib.request import urllib.parse import os,time 輸入貼吧名字 baname input 請輸入貼吧的名字 start page int input 請輸入起始頁 end page int input 請輸入結束頁 不完整的url ur...