抓取时获取空 src
getting Empty src while scraping
我正在尝试使用 Jsoup 抓取网站的内容。 Jsoup 解析的 HTML 具有空 src 属性(即 src=""),而当我在 chrome 中检查网站时它显示非空 src(它没有被 javascript 填充).这不仅仅是 Jsoup 的问题,Scrapy return 相同的结果(空 src)。
我尝试添加自定义用户代理。
任何人都可以告诉这个问题的原因和可能的解决方案。
*我不能使用像 selenium 这样的方法,因为我正在寻找 android 应用程序开发的解决方案。
谢谢!
编辑:
正在使用的网站是 flipkart.com 我正在从其搜索结果中抓取 https://www.flipkart.com/search?q=xbox&marketplace=FLIPKART&sid=search.flipkart.com
来自其 "img" 标记的 Src 被解析为空。
src 属性为空。在浏览器中查看页面源并搜索 class。然后你会发现src属性值为空。
您可以使用 Selenium with Python 来抓取此 src
属性。
#!/bin/bash/env python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get("https://www.flipkart.com/search?q=xbox&marketplace=FLIPKART&sid=search.flipkart.com")
elem = driver.find_elements(By.XPATH, '//img[@class="_1Nyybr"]')
for element in elem:
print element.get_attribute('src')
print element.get_attribute('class')
driver.close()
编辑
使用contains
获取结果。
elem = driver.find_elements_by_xpath('//img[contains(@class, "_30XEf0")]')
我正在尝试使用 Jsoup 抓取网站的内容。 Jsoup 解析的 HTML 具有空 src 属性(即 src=""),而当我在 chrome 中检查网站时它显示非空 src(它没有被 javascript 填充).这不仅仅是 Jsoup 的问题,Scrapy return 相同的结果(空 src)。 我尝试添加自定义用户代理。
任何人都可以告诉这个问题的原因和可能的解决方案。 *我不能使用像 selenium 这样的方法,因为我正在寻找 android 应用程序开发的解决方案。 谢谢!
编辑:
正在使用的网站是 flipkart.com 我正在从其搜索结果中抓取 https://www.flipkart.com/search?q=xbox&marketplace=FLIPKART&sid=search.flipkart.com
来自其 "img" 标记的 Src 被解析为空。
src 属性为空。在浏览器中查看页面源并搜索 class。然后你会发现src属性值为空。
您可以使用 Selenium with Python 来抓取此 src
属性。
#!/bin/bash/env python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get("https://www.flipkart.com/search?q=xbox&marketplace=FLIPKART&sid=search.flipkart.com")
elem = driver.find_elements(By.XPATH, '//img[@class="_1Nyybr"]')
for element in elem:
print element.get_attribute('src')
print element.get_attribute('class')
driver.close()
编辑
使用contains
获取结果。
elem = driver.find_elements_by_xpath('//img[contains(@class, "_30XEf0")]')