日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

天涯python_python 網絡爬蟲(一)爬取天涯論壇評論

發(fā)布時間:2025/3/8 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 天涯python_python 網絡爬蟲(一)爬取天涯論壇評論 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我是一個大二的學(xué)生,也是剛接觸python,接觸了爬蟲感覺爬蟲很有趣就爬了爬天涯論壇,中途碰到了很多問題,就想把這些問題分享出來,

都是些簡單的問題,希望大佬們以寬容的眼光來看一個小菜鳥😄,這也是我第一次寫博客,代碼有哪里寫的不好的地方,需要改進的地方希

望大家也可以幫我指出。

用到的包有requests - BeautSoup

我爬的是天涯論壇的財經(jīng)論壇:‘http://bbs.tianya.cn/list.jsp?item=develop’

它里面的其中的一個帖子的URL:‘http://bbs.tianya.cn/post-develop-2279340-1.shtml’

第一步:定義了三個函數(shù)跟一個main函數(shù)

defgetHtmlText(url):pass

defgetHtmlList(list,url,main_url):pass

defgetHtmlInfo(list,fpath):pass

defmain():pass

第一個函數(shù)是獲取一個url,通過requests.get()方法,獲取頁面的信息,這是一個獲取url資源的模塊

第二個函數(shù)是獲取一個url,調(diào)用第一個函數(shù)解析財經(jīng)論壇頁面,獲取到其中的子帖子的url,存放在list中

第三個函數(shù)是把list中的url通過for循環(huán)一個一個解析頁面,獲取其中我們想要的內(nèi)容,然后把得到的內(nèi)容存放在指定的電腦的位置里

main函數(shù)里就是調(diào)用這幾個函數(shù)

第二步:代碼的具體實現(xiàn)

#?encoding:utf8

importrequestsfrom bs4 importBeautifulSoup

#獲取一個url,通過requests.get()方法,獲取頁面的信息,這是一個獲取url資源的模塊defgetHtmlText(url):try: r=requests.get(url) r.encoding=r.apparent_encoding html=r.text soup= BeautifulSoup(html,'html.parser')returnsoupexcept:print("解析網(wǎng)頁出錯")

#獲取一個url,調(diào)用第一個函數(shù)解析財經(jīng)論壇頁面,獲取到其中的子帖子的url,存放在list中defgetHtmlList(list,url,main_url):try: soup=getHtmlText(url) managesInfo= soup.find_all('td',attrs={'class':'td-title faceblue'})for m inrange(len(managesInfo)): a= managesInfo[m].find_all('a')//獲取帖子的位置for i ina:try: href= i.attrs['href'] list.append(main_url+href)//把帖子的url存放在list中except:continue

except:print("獲取網(wǎng)頁失敗")

#把list中的url通過for循環(huán)一個一個解析頁面,獲取其中我們想要的內(nèi)容,然后把得到的內(nèi)容存放在指定的電腦的位置里defgetHtmlInfo(list,fpath):for i inlist: infoDict={}//初始化存放帖子要獲取的全部信息的字典 authorInfo=[]//初始化存放帖子評論的作者的信息的列表 comment=[]//初始化存放帖子評論的信息的列表try: soup=getHtmlText(i)if soup ==""://如果頁面不存在則跳過,繼續(xù)獲取continueInfo= soup.find('span',attrs={'style':'font-weight:400;'}) title=Info.text//獲取帖子的標(biāo)題 infoDict.update({'論壇話題:':title})//把帖子的標(biāo)題內(nèi)容存放到字典中 author= soup.find_all('div',attrs={'class':'atl-info'})for m inauthor: authorInfo.append(m.text)//把帖子中的評論的作者的信息存放到列表里 author= soup.find_all('div',attrs={'class':'bbs-content'})for m inauthor: comment.append(m.text)//把帖子的評論的信息存放在列表里for m inrange(len(authorInfo)): key= authorInfo[m]+'\n'value= comment[m]+'\n'infoDict[key]=value//把評論的作者的信息跟評論的內(nèi)容以鍵值對的形式存儲起來 #把獲取到的信息存放在自己指定的位置 with open(fpath,'a',encoding='utf-8')as f:for m ininfoDict: f.write(str(m)+'\n') f.write(str(infoDict[m])+'\n')except:continue

defmain(): main_url= 'http://bbs.tianya.cn'develop_url= 'http://bbs.tianya.cn/list-develop-1.shtml'ulist=[] fpath= r'E:\tianya.txt'getHtmlList(ulist,develop_url,main_url) getHtmlInfo(ulist,fpath) main()//運行main函數(shù)

好了,這個代碼就寫完了,我來總結(jié)下我在寫這個代碼中遇到的問題。

總結(jié):

這個代碼很簡單,但是其中的一些細(xì)節(jié)我一開始沒有處理好

在寫第三個函數(shù)的時候,把獲取到的信息全部存放在字典中,在調(diào)試中發(fā)現(xiàn)獲取到的信息有很多重復(fù)的,

后來發(fā)現(xiàn)是沒有初始化每個列表里的信息。因為是循環(huán)存放信息的,讀取完一個帖子的信息之后要把存放

信息的列表初始化,要不會重復(fù)輸出之前存入的信息。

總結(jié)

以上是生活随笔為你收集整理的天涯python_python 網絡爬蟲(一)爬取天涯論壇評論的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。