Javascript Webscrape JS呈现网站

Javascript Webscrape JS呈现网站,javascript,python-3.x,selenium,web-scraping,beautifulsoup,Javascript,Python 3.x,Selenium,Web Scraping,Beautifulsoup,我正试图弄清楚如何将这个通过JavaScript呈现的网站建立起来。当我查看页面源代码时,代码很少。我知道美女组不能这么做。我试过硒,但我是新手。关于如何删除这个网站有什么建议吗?试试谷歌官方的Chrome无头浏览器包装 安装: npm i puppeteer 用法: const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const pag

我正试图弄清楚如何将这个通过JavaScript呈现的网站建立起来。当我查看页面源代码时,代码很少。我知道美女组不能这么做。我试过硒,但我是新手。关于如何删除这个网站有什么建议吗?

试试谷歌官方的Chrome无头浏览器包装

安装:

npm i puppeteer
用法:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

它很容易使用,并且有一个新的浏览器。

试试谷歌官方的Chrome无头浏览器包装

安装:

npm i puppeteer
用法:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

它很容易使用,并且有一个良好的效果。

您可以使用硒来实现这一点。不过,您不会查看HTML源代码。在chrome上按F12(或在firefox上安装firebug)进入开发者工具。到达后,您可以选择元素(devtools窗口左上角的指针图标)。单击所需内容后,可以右键单击“元素”列中突出显示的部分,然后复制->Xpath。请注意在代码中使用正确的引号,因为XPath通常使用双引号,这在使用find_元素按_expath方法时也很常见

本质上,您可以实例化浏览器,转到页面,通过xpath(一种XML语言,只需转到使用javascript的页面上的特定位置)查找元素。大致是这样的:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()

# Load page
driver.get("https://www.instagram.com/accounts/login/")

# Find your element via its xpath (see above to get)

# The "Madlavning" entry on the page would be: 
element = driver.find_element_by_xpath('//*[@id="results"]/div/table/tbody/tr[1]/td[2]/h4/a')

#Pull the text:
element.text

#ensure you dont get zombie/defunct chrome/firefox instances that suck up resources
driver.quit()

硒可以用于大量的刮削,你只需要知道你想做什么,一旦你找到信息

您可以使用selenium来实现这一点。不过,您不会查看HTML源代码。在chrome上按F12(或在firefox上安装firebug)进入开发者工具。到达后,您可以选择元素(devtools窗口左上角的指针图标)。单击所需内容后,可以右键单击“元素”列中突出显示的部分,然后复制->Xpath。请注意在代码中使用正确的引号,因为XPath通常使用双引号,这在使用find_元素按_expath方法时也很常见

本质上,您可以实例化浏览器,转到页面,通过xpath(一种XML语言,只需转到使用javascript的页面上的特定位置)查找元素。大致是这样的:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()

# Load page
driver.get("https://www.instagram.com/accounts/login/")

# Find your element via its xpath (see above to get)

# The "Madlavning" entry on the page would be: 
element = driver.find_element_by_xpath('//*[@id="results"]/div/table/tbody/tr[1]/td[2]/h4/a')

#Pull the text:
element.text

#ensure you dont get zombie/defunct chrome/firefox instances that suck up resources
driver.quit()

硒可以用于大量的刮削,你只需要知道你想做什么,一旦你找到信息

您可以直接使用web页面从中获取数据的API(使用JavaScript)。它返回JSON,所以您只需要解析JSON

import requests
import json
url = "https://archive.cnx.org/search?q=subject:%22Arts%22"
r = requests.get(url)
j = r.json()
# Print the json object
print (json.dumps(j, indent=4, sort_keys=True))
# Or print specific values
for i in j['results']['items']:
    print (i['title'])
    print(i['summarySnippet'])

您可以直接使用web页面从中获取数据的API(使用JavaScript)。它返回JSON,所以您只需要解析JSON

import requests
import json
url = "https://archive.cnx.org/search?q=subject:%22Arts%22"
r = requests.get(url)
j = r.json()
# Print the json object
print (json.dumps(j, indent=4, sort_keys=True))
# Or print specific values
for i in j['results']['items']:
    print (i['title'])
    print(i['summarySnippet'])