第一個未完成的斗魚爬蟲

```python

# __author__="richard"

# _*_ conding:utf-8 _*_

#寫的第一個爬斗魚的腳本,但是沒有做完全 遇到的問題是:在獲得主播的后進(jìn)入無法抓去到要的數(shù)據(jù),在查了相關(guān)的資料后 ,斗魚的數(shù)據(jù)是通過flash里面獲得 這個在網(wǎng)頁上這種機(jī)制上沒有

# 辦法去得。可以在研究看看 自己在寫的時候的不足:沒有全局的去把握方向,模塊化處理上較差 對日志和異常做的較差

import requests

import urllib2

import urllib

import re

from bs4 import BeautifulSoup

import lxml

domain="www.douyu.com"

def getNowTime():

return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))

def open_url(url):

heads= { "Accept":"text/html,application/xhtml+xml,application/xml;",

"Accept-Encoding":"gzip",

"Accept-Language":"zh-CN,zh;q=0.8",

"Referer":"http://www.douyu.com/",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"

}

r =requests.get(url,heads)

return r

def get_fenlei():

response = urllib2.urlopen("https://www.douyu.com/directory")

html = response.read()

soup = BeautifulSoup(html,'lxml')

fl_url_list=[]

fl_id=[]

for link in soup.find_all('a',attrs={"class": "thumb"}):

fl_link= link['href']

id = link['data-tid']

fl_id.append(id)

fl_url_list.append("http://www.douyu.com"+fl_link)

return fl_url_list,fl_id

def get_fl_room(url,data_tid):

# print url

response_fl = urllib2.urlopen(url)

html_fl=response_fl.read()

soup_fl=BeautifulSoup(html_fl,'lxml')

room_id1=[]

for room_id in soup_fl.find_all('a', attrs={"data-tid":data_tid,"data-rpos":0}):

#room_id1.append(room_id["data-rid"])

room_id1= room_id["data-rid"]

room_url_t = domain +"/"+ room_id1

room_url="https://%s" %(room_url_t)

print room_url

room = get_room(room_url)

print room

exit()

# return room_id1

# print? room_id["title"]

# name=room_id.div.p.find_all('span',attrs={"class":"dy-name ellipsis fl"})

# print name[0].string

# fs = room_id.div.p.find_all('span', attrs={"class": "dy-num fr"})

# print fs[0].string

#? ? ? ? print "-*****************************-"

# print "-----------------------------------------"

def get_room(room_url):

room = open_url(room_url).content

# html_room = room.read()

# soup_room = BeautifulSoup(html_room, "lxml")

return room

def start():

fl = get_fenlei()

for i in range(0,len(fl[0])-1):

get_fl_room(fl[0][i], fl[1][i])

if __name__=="__main__":

start()

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容