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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容

發布時間:2023/12/18 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python筆記

1、Python3和Pycharm2018的安裝

2、Python3基礎語法

2.1.1、數據類型

2.1.1.1、數據類型:數字(整數和浮點數)

整數:int類型

浮點數:float類型。

2.1.1.2、數據類型:字符類型

2.1.1.3、數據類型:布爾類型

True:真

Flase:假

2.1.1.3、數據類型:列表(list)

>>> l =['aaa','bbb','ccc']

>>> l[0]

'aaa'

>>> l.append('ddd') # 追加元素

>>> l

['aaa', 'bbb', 'ccc', 'ddd']

>>> l.pop() #數組尾部移除元素

'ddd'

>>> l

['aaa', 'bbb', 'ccc']

>>> l.pop(1) #指定索引位置移除元素

'bbb'

>>> l

['aaa', 'ccc']

>>>

2.1.1.4、數據類型:元組(tuple)

元組和list類似,但是它是不能修改

2.1.1.5、數據類型:字典(dictionary)

類似java的map

>>> m = {'name':'test1','age':18}

>>> m

{'name': 'test1', 'age': 18}

>>> m['name']

'test1'

>>> m['name']='test2'

>>> m

{'name': 'test2', 'age': 18}

>>> m[name] # 如果鍵不存在報錯

Traceback (most recent call last):

File "", line 1, in

m[name]

NameError: name 'name' is not defined

>>>

2.1.1.6、數據類型:集合(set)

set和dict類似,也是一組key的集合,但不存儲value,key不能重復.

>>> s = set([1,2,3])

>>> s

{1, 2, 3}

>>> list = list(s) # 將set類型轉換為list類型

>>> list

[1, 2, 3]

>>> s.add(4)

>>> s

{1, 2, 3, 4}

>>> s.remove(2)

>>> s

{1, 3, 4}

>>>

2.1.1.7、數據類型:None

類似于java的null

2.1.2、變量

python的變量是動態語言,java是靜態語言。

// java

int a=1; //a的數字是int類型

a="abc"; //報錯

a=1 //當前a的數據類型是整數

a=1.0 //浮點型

a='abc' //字符型

常量

python習慣性以大寫定義變量,認為是一個常量,但是python中沒有辦法去約束你不可以修改這個值。

變量:不可變和可變

python3里的6個基本數據類型:

不可變數據(3個):數字、字符串類型、元組

可變數據(3個):數組、字典、集合

>>> a='abc'

>>> b=a

>>> a='123'

>>> a

'123'

>>> b

'abc'

2.1.3、運算符

2.1.3.1、算術運算符

+、-、*、/、%

>>> 7/2

3.5

>>> 6/2

3.0

>>> 7//2

3

>>> 7%2

1

>>> 7.0/2

3.5

>>> 7.0//2 #取整的值取決于相除的2方

3.0

>>> 5 ** 2 # 用** 表示計算冪乘方

25

>>> a='123'

>>> b = a*3 # 將a的值復制3次

>>> b

'123123123'

>>>

2.1.3.2、關系運算符

2.1.3.3、賦值運算符

2.1.3.4、邏輯運算符

and:且

or:或

not:取反

2.1.3.5、位運算符

2.1.3.6、成員運算符

>>> list = [1,2,3,4,5]

>>> a=2

>>> a in list # 判斷a是否在指定序列中

True

>>> b=10

>>> b in list

False

>>> b not in list # 使用not in 判斷是否不在指定的序列中

True

2.1.4、流程語句

2.1.4.1、條件判斷

if 5>3:

print(1)

elif 5>7:

print(2)

#... elif可以寫0到多個

else: # else也可以省略

#code

2.1.4.2、循環

>>> a =1

>>> while a<=10:

print(a)

a++ # python不支持

SyntaxError: invalid syntax

>>> while a<=10:

print(a)

a+=1

1

2

3

4

5

6

7

8

9

10

>>> for n in range(5):

print(n)

0

1

2

3

4

>>> for n in range(1,10):

print(n)

1

2

3

4

5

6

7

8

9

3、爬百度貼吧

1、獲取第一頁的html

from urllib import request, parse

# 獲取每一頁的html

def loadPage(url):

# 1、創建連接對象

req = request.Request(url)

# 2、創建連接并獲得響應對象

response = request.urlopen(req)

# 3、讀取響應的內容

html = response.read()

print(type(html)) # bytes類型的數字,不是str

print('html:', html)

# 4、將讀取的內容解碼

content = html.decode('utf-8')

print('content:', content)

if __name__ == '__main__':

url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9D%8E%E6%AF%85'

loadPage(url)

2、將下載的內容寫入到文件中

from urllib import request, parse

# 獲取每一頁的html

def loadPage(url):

# 1、創建連接對象

req = request.Request(url)

# 2、創建連接并獲得響應對象

response = request.urlopen(req)

# 3、讀取響應的內容

html = response.read()

print(type(html)) # bytes類型的數字,不是str

print('html:', html)

# 4、將讀取的內容解碼

content = html.decode('utf-8')

print('content:', content)

return content

# 將下載的內容寫入到文件中

def writeFile(html, filename):

print('正在保存:' + filename)

f = open(filename, 'w', encoding='utf-8') # open()用來讀或寫文件:讀:mode='r',寫:mode='w'

f.write(html)

f.close()

if __name__ == '__main__':

# 獲取每一頁的html

url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9D%8E%E6%AF%85'

content = loadPage(url)

# 將下載的內容寫入到文件中

filename = 'D:/course/tmp/test1.html'

writeFile(content, filename)

print('程序結束...')

3、設置起始頁和終止頁

int():將str轉換為int類型

float():將str轉換為float類型

str():將轉換為str字符串類型

from urllib import request, parse

# 獲取每一頁的html

def loadPage(url):

# 1、創建連接對象

req = request.Request(url)

# 2、創建連接并獲得響應對象

response = request.urlopen(req)

# 3、讀取響應的內容

html = response.read()

print(type(html)) # bytes類型的數字,不是str

print('html:', html)

# 4、將讀取的內容解碼

content = html.decode('utf-8')

print('content:', content)

return content

# 將下載的內容寫入到文件中

def writeFile(html, filename):

print('正在保存:' + filename)

f = open(filename, 'w', encoding='utf-8') # open()用來讀或寫文件:讀:mode='r',寫:mode='w'

f.write(html)

f.close()

# 設置起始頁和終止頁

def tiebaSpider(url, beginPage, endPage):

for page in range(beginPage, endPage+1):

pn = (page-1) * 50 # 設置pn的值

new_url = url + '&pn=' + str(pn) # 生成新的url

# print('new_url: ', new_url)

print('new_url %s' % new_url)

# print('new_url %s, %s' %(new_url, new_url))

filename = '第'+str(page)+'頁.html' # 生成下載要保存的文件名

html = loadPage(new_url) # 獲得下載頁面的內容

writeFile(html, filename) # 寫入文件

if __name__ == '__main__':

# 獲取每一頁的html

url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9D%8E%E6%AF%85'

beginPage = int(input('請輸入起始頁:')) # 輸入默認的是str類型

endPage = int(input('請輸入終止頁:'))

print('beginPage: %d , endPage:%d' %(beginPage, endPage))

tiebaSpider(url, beginPage, endPage)

print('程序結束...')

4、爬取貼吧圖片

4.1、先要獲得下載圖片的鏈接地址

# 獲得圖片的鏈接地址

def loadPage2(url):

# 創建連接對象

req = request.Request(url)

# 創建url連接獲得響應對象

response = request.urlopen(req)

# 讀取網頁的內容

html = response.read()

# 對內容解碼

html = html.decode('utf-8')

# 對內容創建dom樹對象

content = etree.HTML(html)

print(type(content)) #

# 通過 xpath規則獲取滿足條件的數據

link_list = content.xpath('//div[@id="post_content_102822382749"]/img/@src')

# link_list = content.xpath('//div[@id="post_content_102822382749"]/a/text()')

for link in link_list:

print(link) # 圖片的鏈接地址

if __name__ == '__main__':

url = 'https://tieba.baidu.com/p/4946204416'

loadPage2(url)

4.2、將圖片下載到本地保存

from urllib import request, parse

from lxml import etree

# 獲取每一頁的html

def loadPage(url):

# 1、創建連接對象

req = request.Request(url)

# 2、創建連接并獲得響應對象

response = request.urlopen(req)

# 3、讀取響應的內容

html = response.read()

print(type(html)) # bytes類型的數字,不是str

print('html:', html) # 內容本身就是圖片的內容,圖片的內容由二進制組成,不需要解碼

return html

# 獲得圖片的鏈接地址

def loadPage2(url):

# 創建連接對象

req = request.Request(url)

# 創建url連接獲得響應對象

response = request.urlopen(req)

# 讀取網頁的內容

html = response.read()

# 對內容解碼

html = html.decode('utf-8')

# 對內容創建dom樹對象

content = etree.HTML(html)

print(type(content)) #

# 通過 xpath規則獲取滿足條件的數據

link_list = content.xpath('//div[@id="post_content_102822382749"]/img/@src')

# link_list = content.xpath('//div[@id="post_content_102822382749"]/a/text()')

for link in link_list:

print(link) # 圖片的鏈接地址

filename = link[-20:]

print('正在保存文件:' + filename)

# 將圖片寫入到文件中

# mode='w':寫的數據類型是str

# 寫入二進制內容需要設置mode='wb',并且不需要設置encoding='utf-8'

# 使用with就不需要 手動f.close()

with open('D:/course/tmp/'+filename, 'wb') as f:

html1 = loadPage(link)

f.write(html1)

# f = open('D:/course/tmp/'+, 'w', encoding='utf-8') # open()用來讀或寫文件:讀:mode='r',寫:mode='w'

# f.write(html)

# f.close()

if __name__ == '__main__':

url = 'https://tieba.baidu.com/p/4946204416'

loadPage2(url)

總結

以上是生活随笔為你收集整理的python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容的全部內容,希望文章能夠幫你解決所遇到的問題。

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