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...