Python爬取糗事百科

2021-08-21 21:24:56 字數 2834 閱讀 4673

一、引入模組

因為urlopen功能比較簡單,所以設定**ip需引入proxyhandler和build_opener模組,ip的獲取可以上西祠**查詢

import re

from urllib.request import request,build_opener,proxyhandler

base_url = ''

headers =

ip_list = [

'220.249.185.178:9999',

'124.193.85.88:8080',

'116.62.194.248:3128',

'112.115.57.20:3128',

'171.37.143.73:9797'

]proxies =

二、設定**ip,獲取網頁內容

def down_load_qiubai_info(pageindex):

full_url = base_url + str(pageindex) + '/'

# print(full_url)

#新增headers設定爬蟲目標以及使用者標識

#如果只寫full_url等於告訴網頁獲取網頁內容的不是自然人,而是程式

# 因為程式自帶 user_agent:python urllib / 3.6

request = request(full_url,headers=headers)

#設定**ip

proxies_handler = proxyhandler(proxies)

opener=build_opener(proxies_handler)

response = opener.open(request)

# 獲取對應網頁的全部內容

code = response.read().decode()

三、根據獲取的原始碼獲取糗事百科內容滑鼠右鍵檢查, 每個瀏覽器都不一樣我這裡用的是谷歌瀏覽器

注意:(.*?)表示要獲取的內容, 正則匹配的內容 從指定的開始位置 到全部內容結束 , 所以只需要指定開始的位置 不需要指定結束的位置 , 如果我們想要正則獲取某一對標籤裡面的內容的時候 , 那麼需要將這對標籤對寫完整 而且咋想要獲取的內容 , 上新增()例如:

#根據獲取的內容在網頁中的位置寫正則

pattern = re.compile(r'.*?.*?(.*?)

.*?.*?.*?(.*?).*?.*?(.*?).*?.*?(.*?)',re.s)

#在原始碼中查詢所有符合正則的內容

result = pattern.findall(code)

# print(result)

for name,age,href,content,stats,comment in result:

# strip去除 換行

#拼接url

detail_url = ''+ url

# print(detail_url)

#獲取原始碼

request = request(detail_url,headers=headers)

response = urlopen(request)

code = response.read().decode()

#根據位置寫正則

pattern = re.compile(r'.',re.s)

#在原始碼中查詢所有符合正則的內容

result = pattern.findall(code)

# print(result)

for x in result:

x = x.strip('\n')

# print(x)

#拼接url

url_list = ''+ x

print(url_list)

以上就是用正則爬取糗事百科的步驟。在寫正則的時候一定要注意要根據網頁原始碼來寫,想要獲取的內容用()括起來,

其他的不需要使用的內容用.*?或者其他元字元代替。

python 爬取糗事百科

step 1 構建乙個提取糗事百科笑話的函式import urllib2 import urllib import re import thread import time import sys reload sys sys.setdefaultencoding utf 8 defgetpage p...

Python 爬取糗事百科

coding utf 8 import urllib2 import urllib import re class qiushi def init self self.page 1 從網頁獲取糗事 def getqiushis self,page url page 偽裝瀏覽器 user agent ...

Python 爬取糗事百科

coding utf 8 import urllib2 import urllib import re class qiushi def init self self.page 1 從網頁獲取糗事 def getqiushis self,page url page 偽裝瀏覽器 user agent ...