我正在尝试为以下URL构建一个简单的scrape:
http://www.bizjournals.com/milwaukee/datacenter/project-watch-what-is-being-built-in-milwaukee.html
我要做的是建立一个电子表格,列出地图上列出的所有项目:
我尝试了以下代码,但我一直没有返回任何数据(AKA[]),即使我专门寻找一个值:
from lxml import html
import requests
page = requests.get('http://www.bizjournals.com/milwaukee/datacenter/project-watch-what-is-being-built-in-milwaukee.html')
tree = html.fromstring(page.content)
#This will create a list of project titles:
project = tree.xpath('//*[@id="m4n-0552-popup-1"]/div[2]/b')
print('Projects:', project)
我猜问题是每次我加载页面时,ID都会发生变化(即0552更改为不同的4位数值)。在
有什么建议吗?在
他们认为你是一个机器人,不允许你提取内容
这里的关键一课-当你没有得到你期望的,检查你得到了什么。在
为了得到下面的文字,我只是把内容打印出来。在
在
我一直在检查数据源,试图弄清楚地图上的值是从哪里来的。我认为数据是JSON,但似乎仍然无法识别这些数据是如何被调用和传递到浏览器的。我想你需要定义一些头来发送你的请求。在
我试过几次,但还没有成功。在
看这个问题How to use Python requests to fake a browser visit?
不过,我确实读过他们的使用规则,而且他们禁止刮取他们的内容。请参阅此链接http://acbj.com/privacy#V2。
复制、获取、抓取、索引、刮取、蜘蛛、挖掘、收集、提取、编译、获取、聚合、捕获或存储任何内容,包括但不限于照片、图像、文本、音乐、音频、视频、播客、数据、软件、源代码或目标代码、算法、统计数据、分析、公式、索引、注册表、存储库,或服务上或通过服务获得的任何其他信息,包括通过自动或手动流程或其他方式获得的信息,前提是我们已采取措施禁止、禁止或阻止您这样做;
我想我正在寻找一种获取数据的方法,但在阅读了上面的链接后就停止了。在
'\n\n\n\n\n\n\n\n\n请原谅我们的打扰\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n
请原谅我们的打扰…
\n\n当您浏览http://www.bizjournals.com时,您的浏览器的某些问题使我们认为您是一个机器人。有几个原因可能会发生:\n
\n\n- 你是一个超级用户,以超人的速度浏览这个网站。
\n- 您已经在web浏览器中禁用了JavaScript。
\n- 第三方浏览器插件(如Ghostery或NoScript)正在阻止JavaScript的运行。更多信息请参见http://ds.tl/help-third-party-plugins\'target=\'''u blank\'>;支持文章。
\n
\n\n若要请求解除阻止,请填写下表,我们将尽快审阅。\n
\n\n Ignore:忽略:忽略:忽略:\n\n名字\n如前所述,他们显然禁止在他们的任务中刮擦。但是如果你问他们关于你的用例等等,你可能会很高兴
出于学术兴趣-所有地图数据都来自https://online.maps4news.com/ia/2.0/?id=351%2FBE9%2FB24870F6A499C237B88CB54F27。您可以在chrome开发工具中看到它加载了>;network>;xhr,其中包含弹出框内容和映射点的json响应
相关问题 更多 >
编程相关推荐