ベタインターフェイスで使用すると、スクロールバーをプルダウンしていない場合は、次の写真は、魚のちょうど写真があるので、あなたは、Pythonのセレンライブラリを使用することができ、ブラウザが自動的にスクロールバーを引く作ります、
1、ブラウザを設定
セレンを使用するには、またここでは、ブラウザのchromedriver.exeの独自のバージョンをダウンロードし、インストールする最初のhttps://npm.taobao.org/mirrors/chromedriverこのURLで、Chromeブラウザを使用している、chromedriver.exeをインストールする必要がありますChromeブラウザのルートディレクトリに
2使用のセレンライブラリー、ライブベタページ全体へのアクセス
自動的にChromeブラウザを開き、ベタは、ライブのWebページを最大限に入ると、自動的に全体の放送ページを取得するためにホイールを引っ張っする方法を実装
ブラウザ、検査モードに入るため、F12キーを押して、あなたは、ULタグのページのliクラス=「レイアウト・カバー・リスト」内のすべてのアンカータグを見ることができます
このようにして、データを取得することが可能です
3、写真やリンクのアンカー名を取得
画像は、すべてのクラスで=「DyImg-コンテンツは、通常の」SRCタグで場所を検索
それぞれの名前のクラス=クラス=「DyListCoverユーザー」Dさh2
4.ローカルに結果の画像と名前を保存します
結果の画像リンクが必要ないくつかの不必要であること、これだけ便利な場所にマッチする正規表現を使用することができますので、その後、保存されました
5、完全なコード
import re
import requests
from selenium import webdriver
import time
# 1. 准备url
url = 'https://www.douyu.com/g_yz'
# 2. 获取element对象,Chrome后面是chromedriver.exe安装的根目录
driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get(url)
time.sleep(1)
# 3.加载页面
# 页面最大化
driver.maximize_window()
# 拉动滚动条
for i in range(16):
time.sleep(1)
driver.execute_script("window.scrollBy(0, 500)")
# 4. 获取数据
lis = driver.find_elements_by_xpath('//ul[@class="layout-Cover-list"]/li')
# 5.发送请求保存图片
for li in lis:
url = li.find_element_by_xpath('.//img[@class="DyImg-content is-normal "]').get_attribute("src")
name = li.find_element_by_xpath('.//h2[@class="DyListCover-user"]').text
try:
url = re.match(".*\.jpg", url).group()
response = requests.get(url)
with open("./img/" + name + ".jpg", "wb") as f:
f.write(response.content)
except:
url = re.match(".*\.png", url).group()
response = requests.get(url)
with open("./img/" + name + ".png", "wb") as f:
f.write(response.content)
print(name)
print(url)
# 6.退出/下一页
driver.close()
結果の図