Python爬取網頁內容

2021-09-26 06:57:45 字數 2155 閱讀 3983

其時序圖如圖所示。

給定乙個要訪問的url,獲取這個html及內容,遍歷html中的某一類鏈結,如a標籤的href屬性,從這些鏈結中繼續訪問相應的html頁面,然後獲取這些html的固定標籤的內容,如果需要多個標籤內容,可以通過字串拼接,最後通過正規表示式刪除所有的標籤,最後將其中的內容寫入.txt檔案。

所有要爬取的頁面,它們的標籤格式都是相同的,給定的url所獲得的html,它包含的標籤鏈結是可以篩選的,篩選後的標籤鏈結會被繼續請求其html文件。通過乙個排程器是乙個迴圈體,迴圈處理這些url、請求以及html、網頁解析。

此處我使用的beautifulsoup(markup, 「lxml」)方法承擔html直譯器的角色,返回乙個beautifulsoup物件,其最大優勢是速度快且文件容錯能力強。

一般來說,為了找到beautifulsoup物件內所有標籤,使用find_all()方法找到所有匹配結果出現的地方,其引數為find_all(name, attrs, recursive, text, limit, **kwargs),這裡只需要傳入引數標籤名和屬性即可,比如在**中使用的soup.find_all('a')即為獲取所有標籤內部的內容,然後通過get(『href』)方法即返回得到url標籤,這裡即可承擔url管理器角色。

beautiful soup自動將輸入文件轉換為unicode編碼,輸出文件轉換為utf-8編碼。你不需要考慮編碼方式,除非文件沒有指定乙個編碼方式,這時,beautiful soup就不能自動識別編碼方式了。然後,你僅僅需要說明一下原始編碼方式就可以了。

from bs4 import beautifulsoup

import requests

import time

import re

global count

f = requests.get(url) #請求目標**

#建立乙個beautifulsoup物件,對html解析(解析器)

soup = beautifulsoup(f.content, "lxml")

#過濾js和css

[script.extract() for script in soup.findall('script')]

[style.extract() for style in soup.findall('style')]

#網頁標籤正規表示式

dr = re.compile(r']+>',re.s)

#儲存新聞的標題

ti = str(soup.find('title'))+'\n'

all = dr.sub('',ti) #字串儲存需要寫入檔案的內容

for k in soup.find_all('div',class_='article'): #找到所有指定標籤及其內容

all +=dr.sub('',str(k)) #過濾所有標籤

#寫入檔案(儲存器)

with open('./中文文件/ news_'+str(count)+'_org.txt', 'w', encoding='utf-8') as f:

f.write(all)

count = count+1

if __name__ == "__main__": #程式入口

for i in range(1,16): #迴圈分頁爬取(排程器)

url = "http://****"+str(i) #指定**

f = requests.get(url) #請求url

soup = beautifulsoup(f.content, "lxml") #獲取整個網頁內容

for item in soup.find_all('a'): #遍歷所有鏈結(url管理器)

url = str(item.get('href'))

if url.find("http") < 0 : #僅保留http鏈結

continue

else:

find(url)

time.sleep(0.5)

if(count>500):

break

靜態網頁內容爬取(python)

以 漏洞掃瞄為例 from bs4 import beautifulsoup from urllib.request import urlopen import pymysql as mysqldb import re import os 插入資料 def insertdata lis cursor...

python lxml爬取網頁內容

from lxml import etree import requests url response requests.get url text response.text html etree.html text 先獲取到這個頁面的html,對了,這裡還用到了xpath來選擇節點,具體用法請參考...

Python 爬取網頁

先謝郭嘉 以鏈家二手房為例 1.爬取網頁所必須的庫 import urllib.request import ssl 2.獲取預爬網頁資訊 1 網頁url 3.下面就可以爬取網頁了 以鏈家二手房為例 1.爬取網頁所必須的庫 import urllib.request import ssl 2.獲取預...