Mar*_*rez 3 javascript node.js web-scraping
我想从彭博(Bloomberg)网址获取正文。
这是我正在使用的代码:
const options = {
url: 'https://www.bloomberg.com/quote/CCMP:IND',
headers: {
'User-Agent': 'request'
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
Run Code Online (Sandbox Code Playgroud)
但是当我控制台登录正文时,我收到此消息:
<!doctype html>
<html>
<head>
<title>Bloomberg - Are you a robot?</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
Run Code Online (Sandbox Code Playgroud)
我在Python中使用BeautifulSoup找到了类似的问题和解决方案...但是在NodeJs中找不到解决方案:如何从<p>元素“ id”中抓取文本
小智 5
首先,您可以尝试添加普通浏览器在向发出请求时拥有的所有标头,request如下所示:
headers: {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9,fr;q=0.8,ro;q=0.7,ru;q=0.6,la;q=0.5,pt;q=0.4,de;q=0.3',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
Run Code Online (Sandbox Code Playgroud)
如果仍然无法使用,则应尝试使用Puppeteer,它是由Google制造的基于Chromium的浏览器API,您可以使用NodeJs模拟浏览器的确切工作流程。
这是一个有关如何使用它并开始的好例子:NodeJs使用Puppeteer进行抓取
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |