小何的爬蟲筆記 資料解析

2021-10-10 11:20:44 字數 2983 閱讀 8503

""""

聚焦爬蟲:爬取頁面中指定的頁面內容

-編碼流程

1.指定url

2.發起請求

3.獲取響應資料

4。將響應資料進行持久化儲存

資料解析分類:

-正則-bs4

-xpath(***)

資料解析原理:

-解析的區域性的文字內容都會在標籤之間或者標籤對應的屬性中進行儲存

-1.進行指定標籤定位

-2.標籤或者標籤對應的屬性中儲存的資料值進行提取

"""""

# 爬取糗事百科中所有的

import requests

import re

import os

# 如何爬取資料

if __name__ ==

'__main__'

:# 建立乙個資料夾儲存資料

ifnot os.path.exists(

'./qiutulibs'):

os.mkdir(

'./qiutulibs'

) url=

''img_data=requests.get(url=url)

.content #.content返回二進位制形式資料 text(字串) json() (物件)

)# 正則解析1 爬取所有

url=

''headers_gooogle=

#使用通用爬蟲對整張頁面進行爬取

page_text=requests.get(url=url,headers=headers_gooogle)

.text

# 使用聚焦爬蟲將頁面中所有的進行提取

# 拼接出乙個完整位址

# 求到了的二進位制資料

img_data_result=requests.get(url=url,headers=headers_gooogle)

.content

# 生成名稱,從末端提取

img_name=src.split(

'/')[-

1]# 儲存路徑

img_path=

'./qiutulibs/'

+img_name

with

open

(img_path,

'wb'

)as fp:

fp.write(img_data_result)

print

(img_name,

'over'

)if __name__ ==

'__main__'

:import requests

import re

import json

"""專案案例4:爬取國家藥品監督管理總局中基於中華人民共和國化妝品生產許可證的相關資料

"""headers_firefox =

headers_google =

""" # with open('./1.html','w',encoding='utf-8') as fp:

# fp.write(data)

# print('over')

從此可以發現有些資料是動態載入過來的(例如阿賈克斯資料)

發現首頁中對應的企業資訊資料是通過ajax動態請求到的

通過對詳情頁的觀察發現:url網域名稱是一樣的,只有攜帶的引數(id)不是一樣的

id可以從首頁中對應的ajax請求到的json串中獲取

網域名稱和id拼接處乙個完整企業對應的url

詳情頁的資料也是動態載入過來的

發現所有post請求的url都是一樣的,只有引數id是不同的

可以批量獲取多家企業的id,然後合併id和url獲得所需要的資料

"""# 第一步:批量獲取id位址

url =

''# 引數的封裝

id_list =

for page in

range(0

,20):

page =

str(page)

param =

json_ids = requests.post(url=url, data=param, headers=headers_google)

.json(

)for dic in json_ids[

'list']:

'id'])

# id結合url 獲取企業詳情資料

post_url =

""all_datalist =

forid

in id_list:

data =

detail_json = requests.post(url=post_url, headers=headers_google, data=data)

.json(

) fp =

open

('./alldata.json'

,'w'

, encoding=

'utf-8'

) json.dump(all_datalist, fp=fp, ensure_ascii=

false

)print

(len

(all_datalist)

)

小何的爬蟲筆記

import requests 使用方法 request的編碼流程 指定url 發起請求 獲取相應資料 持久化儲存 unit1 url1 data requests.get url url1 result1 data.text print len result1 unit2 url2 web?處理u...

Matlab小筆記(資料型別)

主題文章 matlab資料型別 此篇emmmm,本來手寫筆記但是怕寫完就扔了,看也不方便,所以記錄電子版 位元組數型別取值 8double 預設 10 308 10 308 10 sim 10 10308 103 084single uint32 int32 10 38 10 38 10 sim 1...

Python3 爬蟲學習筆記 資料庫的安裝

作為資料儲存的重要部分,資料庫同樣必不可少,資料庫可以分為關係型資料庫和非關係型資料庫。關係型資料庫如sqlite mysql oracle sql server db2等,其資料庫是以表的形式儲存 非關係型資料庫如mongodb redis,它們的儲存形式是鍵值對,儲存形式更加靈活。windows...