前面爬取了拉勾網的資訊,然後想繼續類別拓展試著去爬取別的**,於是選擇了爬取去哪兒的自由行
首先是進行網頁的分析
經過對比hotel.json包含了頁面的20個酒店資訊,而shopping16049736136513907.json只有列表中第乙個酒店的資訊,可知我們要爬取的是hotel.json
但是按照我們前面爬取拉勾網的方法爬取hotel.json時出現了以下錯誤:
import requestsurl = '
'def get_json(url, num):
"""從指定的url中通過requests請求攜帶請求頭和請求體獲取網頁中的資訊,
:return
:
""" url1 = '
'headers =
data =
s =requests.session()
print(
'建立session:
', s, '
\n\n')
s.get(url=url1, headers=headers, timeout=3
) cookie =s.cookies
print(
'獲取cookie:
', cookie, '
\n\n')
res = requests.post(url, headers=headers, data=data, cookies=cookie, timeout=6
) res.raise_for_status()
res.encoding = '
utf-8
'page_data =res.json()
print(
'請求響應結果:
我才可能是由反爬的東西,但是目前我初學還解決不了
但是我爬取shopping16049736136513907.json卻成功了
import requestsimport math
import time
import pandas
aspd
import json
def get_json(url):
"""從指定的url中通過requests請求攜帶請求頭和請求體獲取網頁中的資訊,
:return
:
""" url1 = '
'headers =
data =
s =requests.session()
print(
'建立session:
', s, '
\n\n')
s.get(url=url1, headers=headers, timeout=3
) cookie =s.cookies
print(
'獲取cookie:
', cookie, '
\n\n')
res = requests.post(url, headers=headers, data=data, cookies=cookie, timeout=3
) res.raise_for_status()
res.encoding = '
utf-8
'page_data =res.json()
return
page_data
def get_page_info(jobs_list):
"""獲取職位
:param jobs_list:
:return
:
""" page_info_list =
for i in
jobs_list:
job_info =
'depcity'])
for j in i['
reslist
']:
'name'])
'grade'])
'address
']+j['
locationinfo'])
'in'])
'out'])
'room_type'])
for k in j['
rooms']:
'finalprice'])
return
page_info_list
def main():
url = '
'# 獲取每一頁的職位相關的資訊
page_data =get_json(url) # 獲取響應json
total_page_count = page_data['
data
']['
totalprice']
jobs_list = page_data['
data
']['
hotels']
page_info =get_page_info(jobs_list)
num=30
print(
"python開發相關職位總數:{},總頁數為:{}
".format(total_page_count, num))
print(
"每一頁python相關的職位資訊:%s
學習第五天
清楚測試用例是什麼 測試用例的重要性 有效性 測試用例是測試人員測試過程中的重要參考依據,準確的測試用例的計畫 執行和跟蹤是 測試的有效性的有力證明 可復用性 設計良好的測試用例可以重複執行,能節約時間,提高測試效率 易組織性 清晰詳細的測試用例能夠便於測試執行的開展 可評估性 測試用例的通過率是檢...
Java學習第五天
當類載入器需要載入某個類時,類載入器會在載入初始化後生成該類的乙個類物件 class 用於描述該類的元資料資訊等。在其後的連線過程中,會初始化該類的靜態成員 變數或靜態初始化器 靜態初始化變數和初始化器按照先後順序執行初始化。例如 static int a 10 static 這樣初始化後a 100...
C 學習第五天
c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...