我尝试使用Beautiful Soup with Python来抓取网站上的数据。
当我检查网站本身时,我看到以下内容:
"<span id="test"> 567 </span>"
但是当我使用美味的汤时,我所看到的只有:
"<span id="test"></span>"
就好像这个数字是出于安全和保护目的而被隐藏但是如何从解析中获取此信息?我认为它是一个动态的JS元素,但我不确定以及如何访问它。
答案 0 :(得分:2)
以下是实现它的示例代码:
import scrapy
from selenium import webdriver
from bs4 import BeautifulSoup as bs
class SomeSpider(scrapy.Spider):
name = "some"
allowed_domains = ["yourdomain.com"]
def __init__(self, *a, **kw):
super(SomeSpider, self).__init__(*a, **kw)
self.start_urls = ['http://www.yoururl.com',]
firefox_profile = webdriver.FirefoxProfile()
self.driver = webdriver.Firefox(firefox_profile=firefox_profile)
def parse(self, response):
self.driver.get(response.url)
page = TextResponse(response.url, body=self.driver.page_source, encoding='utf-8')
#HERE whatever you want do do eg. text = page.xpath('//span[@id="test"]').extract_first()