python requests,bs4應用例項

2021-08-29 07:52:01 字數 3752 閱讀 3893

import  requests

from bs4 import beautifulsoup

url = ""

# 1). 獲取頁面資訊

response = requests.get(url)

content = response.text

# print(content)

# 2). 分析頁面, 獲取id和電影名

soup = beautifulsoup(content, 'lxml')

# 線找到所有的電影資訊對應的li標籤;

nowplaying_movie_list = soup.find_all('li', class_='list-item')

print(nowplaying_movie_list[0])

print(type(nowplaying_movie_list[0]))

# 儲存所有電影資訊

movies_info =

# 依次遍歷每乙個li標籤, 再次提取需要的資訊

for item in nowplaying_movie_list:

nowplaying_movie_dict = {}

# 根據屬性獲取title內容和id內容

# item['data-title']獲取li標籤裡面的指定屬性data-title對應的value值;

nowplaying_movie_dict['title'] = item['data-title']

nowplaying_movie_dict['id'] = item['id']

nowplaying_movie_dict['actors'] = item['data-actors']

nowplaying_movie_dict['director'] = item['data-director']

# 將獲取的新增到列表中;

# 目標:

import threading

import requests

from bs4 import beautifulsoup

def getonepagecomment(id, pagenum):

# 1). 根據頁數確定start變數的值

# 第一頁:

# 第二頁:

# 第三頁:

start = (pagenum-1)*20

url = "" %(id, start)

content = requests.get(url).text

# 3). 通過bs4分析網頁

soup = beautifulsoup(content, 'lxml')

commentslist = soup.find_all('span', class_='short')

pagecomments = ""

for commenttag in commentslist:

pagecomments += commenttag.text

# return pagecomments

print("%s page" %(pagenum))

global comments

comments += pagecomments

id = '26425063'

comments = ''

threads =

for pagenum in range(10): # 0 , 1 2 3 4...9

pagenum = pagenum + 1

# getonepagecomment(id, pagenum)

t = threading.thread(target=getonepagecomment, args=(id, pagenum))

t.start()

# 等待所有的子執行緒執行結束, 再執行主線程內容;

_ = [thread.join() for thread in threads]

print("執行結束")

完整的分析過程:

- 資料的獲取: 通過爬蟲獲取(urllib|requests《獲取頁面內容》 + re|bs4《分析頁面內容》)

- 資料清洗: 按照一定的格式歲文字盡心處理;

"""import re

with open('./doc/26425063.txt',encoding='utf-8') as f:

comments = f.read()

# 通過正規表示式實現

pattern = re.compile(r'([\u4e00-\u9fa5]+|[a-za-z]+)')

deal_comments = re.findall(pattern, comments)

newcomments = ''

for item in deal_comments:

newcomments += item

print(newcomments)

import jieba

import wordcloud

import numpy as np

from pil import image

text= "馬雲曾公開表態稱對錢沒興趣稱其從來沒碰過錢上了微博熱搜"

# 2). '微博熱', '搜'切割有問題, 可以強調

# jieba.suggest_freq(('微博'),true)

# jieba.suggest_freq(('熱搜'),true)

# 強調檔案中出現的所有詞語;

jieba.load_userdict('./doc/newword')

# 1). 切割中文, lcut返回乙個列表, cut返回乙個生成器;

result = jieba.lcut(text)

print("切分結果:", result)

# 4). 繪製詞云

wc = wordcloud.wordcloud(

background_color='snow',

font_path='./font/msyh.ttf', # 處理中文資料時

min_font_size=5, # 中最小字型大小;

max_font_size=50, # 中最大字型大小;

width=200, # 指定生成的寬度

FFmpeg完美入門 4 FFmpeg應用例項

1 用ffserver從檔案生成流 一 安裝ffmpeg 在ubuntu下,執行sudo apt get ffmpeg 安裝ffmpeg,在其他linux作業系統下,見ffmpeg的編譯過程 編譯完成後可執行自動安裝 如test.在本文件中,預設放入使用者資料夾下得music資料夾內.直接從裝置採集...

實訓小結(4)

今天已經實訓結束了,得個空閒的時候將之前沒上傳的筆記上傳 隨機數隨機數其實是偽隨機數,這些數其實是有規律的 seed 種子 初始值 隨機數生成器 演算法 返回兩樣東西 隨機數,生成下乙個隨機數的種子 這個種子用來再繼續生成新的隨機數 while num 5 np.random.seed 1 prin...

ValueListEditor元件應用例項(二)

在上一將的基礎上,接下來就可以編寫button的響應事件了。雙擊 刪除 按鈕進入響應事件的編寫。整個 刪除 按鈕的 如下,水平有限,這裡我就不用仔細解釋了。void fastcall tform2 button1click tobject sender 然後我們再編寫自定義函式update 在上面b...