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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

鸟与虫(三)贴吧,我想粗去玩

發布時間:2024/1/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸟与虫(三)贴吧,我想粗去玩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 哈羅啊,又見面了,這幾天考試+各種事情,耽誤了點時間,不夠我終于又做了個案例
  • 還是看著知乎大神的帖子Wakingup的帖子
  • 話不多說,上代碼
'''根據知乎大神代碼作者:高佳樂''' ##先導入各種庫 import re ##re正則表達式 import requests ##獲取url from bs4 import BeautifulSoup ##bs4解析 import time ##爬蟲嘛,要有禮貌 import random ##開始我想用隨機數轉換head來著,試了試沒事 import os ##弄文件及,一頁一個文件夾 from lxml import etree ##xpath的庫##定義一個類,爬蟲 class spider():##初始化def __init__(self): ##初始化函數self.url = 'http://tieba.baidu.com' ##使他的初始化函數是貼吧首頁return##獲取貼吧的urldef getUrl(self,url): ##獲取url的函數(參數是一個url,網址)html = requests.get(url) ##html是requests.get獲取到的源碼html_text = html.text ##html_text是上邊獲取到代碼后然后書寫進來return html_text ##這個函數返回html_text以便賦值##獲取帖子的標題def title(self,url):html = self.getUrl(url) ##html是用getUrl獲取到的代碼soup = BeautifulSoup(html,'lxml') ##soup是用BeautiflSoup解析的結構樹,用的是lxmltitle = soup.find(class_="core_title_txt")##然后獲取class=“core_title_text”的節點#print('這個貼吧的標題是:',title.get_text()) ##這個已經注釋了,解釋也沒用了return title.get_text() ##返回的是上邊獲到標題節點的內容##獲取帖子的總頁數def pages(self,url): ##這個函數是獲取總頁數html = self.getUrl(url) ##html是用getUrl獲取到的代碼soup = etree.HTML(html) ##然后soup是用etree.HTML把上邊獲得的代碼解析,以便使用xpathpages = soup.xpath('.//div[@id="thread_theme_5"]//li[@class="l_reply_num"]/span[last()]')##因為用正則有點麻煩我感覺,用bs4我也覺得有點煩,就用了xpath,xpath剛開始用,原諒我太菜for page in pages: ##上邊的xpath是在此節點中不管那個位置的id=“thread_theme_5的div里不管在哪的class=“l_reply_num”的li的最后一個spanbreak; ##因為獲得的是列表,所以要遍歷,因為我只獲取一個值,所以我在這個循環里循環后直接結束return page.text ##因為上邊返回的是一個那樣的,所以返回值帶上text返回文本##獲取樓主和內容def content(self,url): ##獲取樓主的內容,參數是urlhtml = self.getUrl(url) ##html是用getUrl獲取到的代碼##我用的正則,有點麻煩,用在我這個帖子里好使,別的沒準就報錯了,推薦用xpath或者Bs4zhengze = re.compile('<li.*?_author_name.*?_blank.*?(.*?)</a>.*?d_post_content.*?save_face_bg_hidden.*?d_post_content j_d_post_content.*?>(.*?)</div>',re.S)contents = re.findall(zhengze,html) ##上邊是定義一個正則,這里就是使用在html篩選上邊條件的全部節點,返回列表number = 1 ##計數器,這是個記住器,以便記住第幾樓for i in contents:print('第%d個帖子\n樓主:%s\n內容:%s\n'%(number,i[0],i[1]))print()number+=1##獲取圖片def img(self,url): ##獲取圖片的函數html = self.getUrl(url) ##html也是用getUrl獲取的代碼soup = BeautifulSoup(html,'lxml') ##soup是用BS4解析的代碼,用的lxmlimages = soup.select('img[class="BDE_Image"]')##然后用select查到符合‘class=“BDE_Image”’的img標簽,返回列表number = 0 ##這是個計數器,imgs = [] ##這里創建一個空列表以便吧圖片地址存到這里,你會問上邊不是有了嗎,其實上邊是有列表,但是上邊的是節點的列表就是還設有別的屬性,咱們只要scr屬性的for i in images: ##這是一個計一頁有多少圖片的方法,當然這是最屌絲的方法number+=1 ##讀取一個節點,number+1if number > 0: ##計數下來,number>0的話print('厲害,厲害,這里有%s個圖片,爬完就跑,刺激'%number)##輸出這點話else: ##反之就是<=0 就說這話print('這里沒有圖片,快跑')number = 1 ##這里number在=1,以便計數for image in images: ##用image在images讀取,也就是在上邊爬到的圖片節點中讀取img = image.get('src') ##這里get(src)就是,img只獲得這個節點的src屬性,就是純url了print('正在爬取,第%d圖片:'%number,img)##輸出上邊獲取圖片的urlimgs.append(img) ##然后把上邊的純連接img追加到開始創建的那個空列表里,這不就會成為一個純連接的列表了number+=1 ##number+1 以便計數return imgs ##返回那個純連接的列表##創建文件夾,和圖片def make(self,name): ##創建文件夾的函數dir = os.getcwd()+'\第'+str(name)+'文件夾' ##先定義文件的名字,就是os.getcwd獲取當前工作路徑,+文件夾的名# 去除首位空格dir = dir.strip()# 去除尾部 \ 符號dir = dir.rstrip('\\')##判斷目錄是否存在panduan = os.path.exists(dir) ##exists判斷目錄是否存在,是=true,否=Falseif panduan: ##如果有就已存在print(dir,'已存在')else: ##反之,也就是假,沒有os.makedirs(dir) ##就創建這個文件夾,當然我這的路徑是絕對路徑print(dir,'已創建成功')return dir ##返回那個文件夾的路徑,以便下邊的切換路徑##保存圖片def saveimage(self,url): ##保存圖片了images = self.img(url) ##images是用img獲取到的純連接的那個列表num = 1 ##num=1計數器for img in images: ##用循環讓img在那個返回的純連接的列表里讀取fil = str(num) + '.jpg' ##然后定義圖片名字.jpghtml = requests.get(img).content ##因為直接一個地址是寫不到圖片里邊去的,要寫入二進制,所以要先獲取那個圖片的內容,然后.content轉化成二進制f = open(fil,'wb') ##然后打開fil的文件可寫可讀,沒有就是創建f.write(html) ##然后寫入圖片的二進制f.close() ##然后關閉,隨手關閉是個好孩子num+=1 ##當然計數器要+1print('第%s保存成功'%fil) ##提示圖片保存成功更有逼格##操控,一個貼吧的操控def all(self,number): ##這個函數就是把所有的方法封裝到這里##貼吧地址是self.url+帖子號url = self.url+'/p/'+str(number) ##因為地址也是首頁+帖子號,這個也是第一頁##獲取標題title = self.title(url) ##有title方法獲取標題print('這個帖子的標題是%s'%title)##獲取總頁數page = int(self.pages(url)) ##用pages獲取帖子總頁數,并轉換成整數型,以便下邊的+1##根據總頁數獲取全部的頁數,并獲取圖片num = 1 ##num這里就是計數,頁數了print('第1頁') ##這里是第一頁##獲取內容self.content(url) ##第一頁是不加pn的所以要單獨分開來獲取,url是上邊弄得首頁+帖子號,這里是獲取內容和樓主self.img(url) ##這里是獲取圖片的詳細資料dir = self.make(num) ##這里是創建文件夾,因為一頁保存一個文件夾,所以這是第一個os.chdir(dir) ##上邊創建好文件夾后,轉換到文件夾下self.saveimage(url) ##然后保存,然后就跑num+=1 ##第一頁保存了,當然是第二頁了,后邊的頁數也不一樣了,for i in range(num,page+1): ##之前獲取到的總頁數在這里,因為要獲取全部,第一頁之前已經獲取了,這里既是從第2頁開始到總頁數+1后停止,為什么+1?因為for取首不娶尾url_2 = url + '?pn=' + str(i) ##這里是給每頁的url獲取,因為第二頁后每頁都是首頁+帖子號+?pn=頁數了print('第%d頁'%i) ##計數第幾頁time.sleep(1) ##爬蟲要禮貌,禮貌,所以要sleep,1.。其實我打算想著0.1,但是為了世界和平所以要大點了,→_→self.content(url_2) ##獲取第i頁這內容self.img(url_2) ##獲取第i頁圖片詳情dir = self.make(i) ##然后創建第i個文件夾,根據i的數創建os.chdir(dir) ##然后切換到新創建的第i個文件夾里time.sleep(1) ##然后講一下禮貌self.saveimage(url_2) ##然后保存第i頁的圖片time.sleep(1) ##再講一下禮貌img = spider() img.all(int(input('輸入帖子號')))
  • (這段是一個內心的小活動,可以省略看下邊)
    學校換老師開始前端實例了┓( ′-` )┏,偷偷告訴你們我其實學的專業是ui設計,不會代碼的ui不是一個好美工( ̄ー ̄),所以我決定好好學前端了,據說這樣可以避免以后工作上和程序員的矛盾,嘛哈哈哈。當然爬蟲我也要抓住,好不容易有這樣的機會。

  • 這里,這次是把貼吧,旅游吧里的一個帖子爬圖片和內容,足不出戶,就可以看美景,還出去什么旅游,還不如在宿舍乖乖敲代碼。emm對了我那個抓取樓主和內容的時候用的正則,可能我這好使別的就不好使了,沒時間改xpath了(其實不也不知道能不能改),見諒。

  • 好了到了這就要再見了,砸門下次再見。堅持,加油,努力。

總結

以上是生活随笔為你收集整理的鸟与虫(三)贴吧,我想粗去玩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 诱夫1v1高h | 伊人网在线观看 | 日本欧美在线视频 | 欧美另类z0z变态 | 一本视频在线 | 亚洲国产精品成人无码区 | 免费av网址在线观看 | 国产精品18久久久久久vr下载 | 美女免费视频网站 | 欧洲av网站| 日本久久久网站 | 99热精品在线 | 漂亮人妻洗澡被公强 日日躁 | 成人欧美一区二区三区 | 国产一区自拍视频 | 免费无码又爽又黄又刺激网站 | 国产美女作爱视频 | 国产91在线播放九色 | 神马午夜电影一区二区三区在线观看 | 中文在线最新版天堂 | 在线国产黄色 | 亚洲春色一区二区三区 | 久久盗摄 | 高清国产一区二区三区四区五区 | 有码在线| www男人的天堂 | 亚洲一区和二区 | 狠狠狠狠狠干 | 亚洲av无码国产精品色午夜 | 日韩黄色成人 | 色综综| 国产天堂 | 日本美女逼 | www.在线视频 | 影音先锋国产精品 | 在线精品自拍 | 欧美性受xxxx黑人xyx性 | 蓝牛av | 处女朱莉 | 奇米影视四色在线 | 色一情 | 丝袜老师让我了一夜网站 | 国产男男gay体育生网站 | 日韩中文字幕有码 | 免费看日产一区二区三区 | 国产精品久久久免费视频 | 国产欧美一区二区精品忘忧草 | 91娇羞白丝网站 | 18视频在线观看娇喘 | 亚洲另类图区 | 亚洲h网站 | 神马伦理视频 | 依人久久| 天天综合网天天综合色 | 色接久久 | 黄色网战在线观看 | 少妇高潮大叫好爽喷水 | 成人激情在线观看 | 一区精品视频在线观看 | 欧美1234区| a级黄毛片 | 看毛片网| 欧美韩日一区二区 | 免费a级片在线观看 | 国产免费久久 | 在线观看高清av | 国产精欧美一区二区三区白种人 | 亚洲成人三区 | 视频一区二区三区精品 | 亚洲五月六月 | 国产伦精品一区二区三区精品 | 三级网站国产 | 欧美日韩视频免费观看 | 日韩二区| 91网址在线| 久久网页 | 毛片成人网 | 日韩大片免费看 | 最好看的2019年中文在线观看 | 中文字幕理伦片免费看 | 日韩免费精品视频 | 国产色婷婷一区二区 | 国产精品久久婷婷六月丁香 | 国产超碰 | 直接看av的网站 | 色又色| 高贵麻麻被调教成玩物 | 青青久在线 | wwwxxxx国产| 欧美日韩亚洲另类 | 黄污视频在线观看 | 一级高清视频 | av日韩在线播放 | 成人区人妻精品一区二区不卡视频 | 成人深夜网站 | 日本伦理一区二区 | 欧美不卡一二三 | 国产精品无码白浆高潮 | 99久久99久久免费精品蜜臀 |