使用 Python 和 BeautifulSoup 进行抓取时模拟点击 link
Simulate clicking a link when scraping with Python and BeautifulSoup
读了多年,这是我的第一个SO问题。在此先感谢您的帮助!
我想从福布斯网站上的文章中抓取内容。这作为示例页面:http://www.forbes.com/sites/katevinton/2015/09/22/google-microsoft-qualcomm-and-baidu-announce-joint-investment-cloudflare/。直接加载文章时,页面源码变成乱七八糟的JavaScript,难以解析。但是,当我单击 'print' 按钮时,它会在 URL 后附加一个“/print/”,并给我一个页面,我用 BeautifulSoup.[=14= 解析没有问题]
当我输入附加了“/print/”的 url 时,它重定向到非“/print/”页面。当我点击按钮时,我只会到达实际的“/打印/”页面。因此,我的问题是:如何以编程方式模拟单击该打印按钮以进入 Beautiful Soup 可抓取页面?四处寻找,人们似乎建议使用 mechanize 来模拟浏览器操作,但我不确定在这种情况下我会尝试用它做什么。或者有没有更好的方法来完全抓取这些数据?
感谢您提供的任何帮助!
您需要使用引用集来请求它,所以像这样的东西会起作用:
import requests
url = "http://www.forbes.com/sites/samsungbusiness/2015/09/23/how-your-car-is-becoming-the-next-hot-tech-gadget/print/"
print requests.get(url, headers={"referer": url.replace("print/", "")}).content
读了多年,这是我的第一个SO问题。在此先感谢您的帮助!
我想从福布斯网站上的文章中抓取内容。这作为示例页面:http://www.forbes.com/sites/katevinton/2015/09/22/google-microsoft-qualcomm-and-baidu-announce-joint-investment-cloudflare/。直接加载文章时,页面源码变成乱七八糟的JavaScript,难以解析。但是,当我单击 'print' 按钮时,它会在 URL 后附加一个“/print/”,并给我一个页面,我用 BeautifulSoup.[=14= 解析没有问题]
当我输入附加了“/print/”的 url 时,它重定向到非“/print/”页面。当我点击按钮时,我只会到达实际的“/打印/”页面。因此,我的问题是:如何以编程方式模拟单击该打印按钮以进入 Beautiful Soup 可抓取页面?四处寻找,人们似乎建议使用 mechanize 来模拟浏览器操作,但我不确定在这种情况下我会尝试用它做什么。或者有没有更好的方法来完全抓取这些数据?
感谢您提供的任何帮助!
您需要使用引用集来请求它,所以像这样的东西会起作用:
import requests
url = "http://www.forbes.com/sites/samsungbusiness/2015/09/23/how-your-car-is-becoming-the-next-hot-tech-gadget/print/"
print requests.get(url, headers={"referer": url.replace("print/", "")}).content