Python 抓取twitch目录中剪辑的所有链接
如何从twitch网页收集剪辑链接 我想从twitch目录中获取所有视频剪辑的链接,如 我尝试了使用BeautifulSoup的请求,失败了,然后使用lxml的请求也失败了 我尝试使用SeleniumWebDriver通过xpath查找剪辑链接,并单击每个链接 驱动程序。通过xpath(“查找”)查找元素。单击() 尽管xpath表达式是正确的,但也失败了Python 抓取twitch目录中剪辑的所有链接,python,selenium,web-scraping,twitch,Python,Selenium,Web Scraping,Twitch,如何从twitch网页收集剪辑链接 我想从twitch目录中获取所有视频剪辑的链接,如 我尝试了使用BeautifulSoup的请求,失败了,然后使用lxml的请求也失败了 我尝试使用SeleniumWebDriver通过xpath查找剪辑链接,并单击每个链接 驱动程序。通过xpath(“查找”)查找元素。单击() 尽管xpath表达式是正确的,但也失败了 如何从twitch网页收集剪辑链接?请提供帮助。您可以使用以下XPath识别视频剪辑URL: xpath = //a[@data-a-ta
如何从twitch网页收集剪辑链接?请提供帮助。您可以使用以下XPath识别视频剪辑URL:
xpath = //a[@data-a-target='preview-card-image-link']
但是上面只会找到前20个URL,之后需要向下滚动,以便从那里动态加载。要获取前20个URL,您可以尝试以下代码:
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('C:\\NotBackedUp\\chromedriver.exe')
driver.get("https://www.twitch.tv/directory/game/Apex%20Legends/clips?fbclid=IwAR2xYPFh3Um2YS4EsDkjAdA0b-CMvjQTLVLeNW5D77-aPh3IqwW9c4e7lIM&range=24hr")
sleep(3)
links = driver.find_elements_by_xpath("//a[@data-a-target='preview-card-image-link']")
for link in links:
print link.get_attribute('href')
如果通过检查手动计数,则该页面中有1020个剪辑。因此,下面的代码将向下滚动,直到加载所有剪辑并打印所有链接:
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('C:\\NotBackedUp\\chromedriver.exe')
driver.get("https://www.twitch.tv/directory/game/Apex%20Legends/clips?fbclid=IwAR2xYPFh3Um2YS4EsDkjAdA0b-CMvjQTLVLeNW5D77-aPh3IqwW9c4e7lIM&range=24hr")
sleep(3)
i = 1
while i <= 1020:
links = driver.find_elements_by_xpath("//a[@data-a-target='preview-card-image-link']")
driver.execute_script('arguments[0].scrollIntoView(true);', links[len(links)-1])
print "=> i :", i
i+=20
sleep(1)
links = driver.find_elements_by_xpath("//a[@data-a-target='preview-card-image-link']")
for link in links:
print link.get_attribute('href')
print("=> Done...")
从selenium导入webdriver
从时间上导入睡眠
driver=webdriver.Chrome('C:\\NotBackedUp\\chromedriver.exe')
驱动程序。获取(“https://www.twitch.tv/directory/game/Apex%20Legends/clips?fbclid=IwAR2xYPFh3Um2YS4EsDkjAdA0b-CMvjQTLVLeNW5D77-aPh3IqwW9c4e7lIM和范围=24小时)
睡眠(3)
i=1
我会先开始,然后再回来,当你陷入困境和/或有一些代码显示工作正常,但返回一个链接时,它不接受链接上的循环,是不是因为driver.find_element_by_xpath只返回第一次出现而不是list?这是什么意思?你能分享它返回的链接吗?对我来说,它返回了20个链接,这是驱动程序。通过xpath(//a[@data-a-target='preview-card-image-link'])查找元素不是驱动程序。通过xpath()查找元素元素和元素之间有区别,所以使用元素是的,我错了,我忘了s,如何通过使用selenium向下滚动来获取其余链接?有解决方案吗?是的,你需要向下滚动并获取它