91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .py
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-09
  • 語言: Python
  • 標簽: Python3??

資源簡介

根據爬到的"大眾點評網"酒店主頁的URL地址,自動抓取所有用戶的"ID、name、評分、時間保存下來"我的 v2版本

資源截圖

代碼片段和文件信息

‘‘‘
程序名:???drdianping2_s
功能:????根據爬到的“大眾點評網“酒店主頁的URL地址,自動抓取所有用戶的“ID、name、評分、時間保存下來“。
?????????(目前大眾點評剛進去酒店主頁默認是上海地區的酒店)
語言:????python3.4
創建時間:?2016-4-13
作者:?????dairen
‘‘‘
import?re
from?collections?import?deque
import?http.cookiejar
import?urllib.request
import?urllib.parse

def?getOpener(head):
????#?deal?with?the?Cookies
????cj?=?http.cookiejar.CookieJar()
????pro?=?urllib.request.HTTPCookieProcessor(cj)
????opener?=?urllib.request.build_opener(pro)
????header?=?[]
????for?key?value?in?head.items():
????????elem?=?(key?value)
????????header.append(elem)
????opener.addheaders?=?header
????return?opener

#定義變量
queue?=?deque()
visited?=?set()
SleepNum?=?0
count?=1??????????#?處理的queue中url的數目
breaknumber?=?0???#?計數,發生異常的url數

#先寫輸出文件的頭
fileOut?=?“D:/rating.txt“
fileOp?=?open(fileOut?‘a‘?encoding=“utf-8“)
fileOp.write(?“%12s\t%12s\t%20s\t%15s\t%15s\t%15s\t%15s\t\n“%(“hotelid““userid““username““rate_room““rate_service““rate_total““rate_time“))
fileOp.close()

#先把opener做出來

head?=?{‘User-Agent‘:?‘Mozilla/5.0?(Windows?NT?6.3;?WOW64;?Trident/7.0;?rv:11.0)?like?Gecko‘}
opener?=?getOpener(head)

#???www.dianping.com/shanghai/hotel/p2
#??大眾點評進去有50頁酒店,每頁15家酒店,地址類似于上面
pagelist?=?range(151)
urlnum?=?1

save_path?=?‘D:\\hotelhomes.txt‘
fileOp?=?open(save_path?‘a‘?encoding=“utf-8“)

for?k1?in?range(050):
????tempurlpag?=?“http://www.dianping.com/shanghai/hotel/p“+str(pagelist[k1])
????#queuepag.append(tempurlpag)
????#下面對于當前頁拿到每個酒店網址并加入隊列
????op?=?opener.open(tempurlpag)
????if?‘html‘?not?in?op.getheader(‘Content-Type‘):
????????continue
????data1?=?op.read().decode(encoding=‘UTF-8‘)
????#??onclick=“window.open(‘/shop/2503441‘)
????#用轉意符再把‘給轉義了
????linkre?=?re.compile(r‘onclick=“window.open\(\‘(.*?)\‘\)‘?re.DOTALL).findall(data1)
????for?k2?in?range(0?len(linkre)):
????????tempurlhotel?=?“http://www.dianping.com“?+?linkre[k2]
????????queue.append(tempurlhotel)
????????fileOp.write(tempurlhotel+‘\n‘)
????????#print(‘目前是第:??%d??頁的第:?%d??個酒店,其地址是?:%s‘%(k1+1k2+1tempurlhotel))
????print(‘第:??%d??頁抓取完成!‘%k1)

fileOp.close()
print(“抓取上海地區各酒店主頁完畢!\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n“)

while?queue:
????tempurl?=?queue.popleft()??#?隊首元素出隊
????visited?|=?{tempurl}??#?標記為已訪問
????try:
????????#?酒店編號
????????hotelid?=?tempurl.split(‘/‘)[4]
????????#?print(‘該酒店的hotelid是?:?‘?hotelid)

????????#?拼湊出該酒店第一頁“評論頁面“的url
????????url?=?tempurl+?“/review_more“
????????#?print(‘該酒店第一頁“評論頁面“的url是‘?url)

????????op?=?opener.open(url)
????????data?=?op.read()

????????#?save_path?=?‘D:\\temp.out‘
????????#?f_obj?=?open(save_path?‘wb‘)
????????#?f_obj.write(data)
????????#?f_obj.close()

????????data?=?data.decode(‘utf-8‘?‘ignore‘)

????????#?對于下面這段str匹配
????????#????title=““>全部點評(1195)

????????#?列表形式這里不是倆括號的意思,而是用轉義符把1195外面的圓括號分開,flag為DOTALL可以匹配任何字符包括換行(newline)
????????rate_number?=?re.compile(r‘全部點評\((.*?)\

評論

共有 條評論