生活随笔
收集整理的這篇文章主要介紹了
鸟与虫(三)贴吧,我想粗去玩
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 哈羅啊,又見面了,這幾天考試+各種事情,耽誤了點時間,不夠我終于又做了個案例
- 還是看著知乎大神的帖子Wakingup的帖子
- 話不多說,上代碼
'''根據知乎大神代碼作者:高佳樂'''
import re
import requests
from bs4
import BeautifulSoup
import time
import random
import os
from lxml
import etree
class spider():def __init__(self): self.url =
'http://tieba.baidu.com' returndef getUrl(self,url): html = requests.get(url) html_text = html.text
return html_text
def title(self,url):html = self.getUrl(url) soup = BeautifulSoup(html,
'lxml') title = soup.find(class_=
"core_title_txt")
return title.get_text()
def pages(self,url): html = self.getUrl(url) soup = etree.HTML(html) pages = soup.xpath(
'.//div[@id="thread_theme_5"]//li[@class="l_reply_num"]/span[last()]')
for page
in pages:
break;
return page.text
def content(self,url): html = self.getUrl(url) zhengze = 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) number =
1 for i
in contents:print(
'第%d個帖子\n樓主:%s\n內容:%s\n'%(number,i[
0],i[
1]))print()number+=
1def img(self,url): html = self.getUrl(url) soup = BeautifulSoup(html,
'lxml') images = soup.select(
'img[class="BDE_Image"]')number =
0 imgs = []
for i
in images: number+=
1 if number >
0: print(
'厲害,厲害,這里有%s個圖片,爬完就跑,刺激'%number)
else: print(
'這里沒有圖片,快跑')number =
1 for image
in images: img = image.get(
'src') print(
'正在爬取,第%d圖片:'%number,img)imgs.append(img) number+=
1 return imgs
def make(self,name): dir = os.getcwd()+
'\第'+str(name)+
'文件夾' dir = dir.strip()dir = dir.rstrip(
'\\')panduan = os.path.exists(dir)
if panduan: print(dir,
'已存在')
else: os.makedirs(dir) print(dir,
'已創建成功')
return dir
def saveimage(self,url): images = self.img(url) num =
1 for img
in images: fil = str(num) +
'.jpg' html = requests.get(img).content f = open(fil,
'wb') f.write(html) f.close() num+=
1 print(
'第%s保存成功'%fil)
def all(self,number): url = self.url+
'/p/'+str(number) title = self.title(url) print(
'這個帖子的標題是%s'%title)page = int(self.pages(url)) num =
1 print(
'第1頁') self.content(url) self.img(url) dir = self.make(num) os.chdir(dir) self.saveimage(url) num+=
1 for i
in range(num,page+
1): url_2 = url +
'?pn=' + str(i) print(
'第%d頁'%i) time.sleep(
1) self.content(url_2) self.img(url_2) dir = self.make(i) os.chdir(dir) time.sleep(
1) self.saveimage(url_2) time.sleep(
1) img = spider()
img.all(int(input(
'輸入帖子號')))
(這段是一個內心的小活動,可以省略看下邊)
學校換老師開始前端實例了┓( ′-` )┏,偷偷告訴你們我其實學的專業是ui設計,不會代碼的ui不是一個好美工( ̄ー ̄),所以我決定好好學前端了,據說這樣可以避免以后工作上和程序員的矛盾,嘛哈哈哈。當然爬蟲我也要抓住,好不容易有這樣的機會。
這里,這次是把貼吧,旅游吧里的一個帖子爬圖片和內容,足不出戶,就可以看美景,還出去什么旅游,還不如在宿舍乖乖敲代碼。emm對了我那個抓取樓主和內容的時候用的正則,可能我這好使別的就不好使了,沒時間改xpath了(其實不也不知道能不能改),見諒。
好了到了這就要再見了,砸門下次再見。堅持,加油,努力。
總結
以上是生活随笔為你收集整理的鸟与虫(三)贴吧,我想粗去玩的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。