我试图从网站上抓取数据.该网站使用Facebook的React.因此,我可以使用Jaunt解析的源代码与我在使用Chrome检查器检查元素时看到的代码完全不同.
我对这一切知之甚少,但做了一些研究后我认为这与DOM而不是源代码有关.我需要一种能够获得这个DOM代码的方法,因为原始的源代码包含我想要的任何东西,但我没有最模糊的想法从哪里开始(甚至在这里阅读了很多答案).
这是我想要抓取的页面的一个示例.例如,为了抓住描述,我想抓住标签之间的内容:
<span class="light-font extended-card-description list-group-item">Example description....</span>
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,此元素仅在您" 检查元素 " 时出现,而不是在我查看页面源时出现.
我在这里问你天才的问题是,如何抓住这个DOM代码并开始抓取我真正想要的元素?
请原谅我,如果我的术语完全关闭,但正如我所说,这对我来说是一个全新的领域,我已经做了我能做的研究.
非常感谢你提前!
有没有人知道任何可以发送自定义HTTP请求并打印出响应的在线HTTP客户端?
要求:
如何使用C#抓取html文档中JavaScript动态生成的数据?
使用WebRequest和HttpWebResponse在C#库中,我能够将整个html源代码作为字符串,但难点是我想要的数据不包含在源代码中; 数据由JavaScript动态生成.
另一方面,如果我想要的数据已经在源代码中,那么我可以使用正则表达式轻松获取它们.
我已经下载了HtmlAgilityPack,但我不知道它是否会处理由JavaScript动态生成项目的情况......
非常感谢你!
有没有办法从网页上获取执行的javascript内容?我已经尝试过请求+ BeautifulSoup,机械化,这些让我得到了网页的"源代码",而不是执行的javascript.例如,这个网站: - http://listen.tidal.com/login
正如您所看到的,在源代码中,存在未执行的JS,但是,当您检查元素时,您将看到执行的代码.
现在,有什么方法可以在python中获得EXECUTED代码吗?请提示,因为我尝试使用mechanize来模拟浏览器,它就像reuqests一样.谢谢
我正在考虑进行一些前端集成测试,但在这方面遇到了一些困难。我知道如何进行 javascript 单元测试,但我并没有真正了解前端测试的想法。
我想测试的一些场景:
最好使用什么工具?我该如何继续呢?
我正在开展一个项目,我需要抓取几个网站并从中收集不同类型的信息.文本,链接,图像等信息
我正在使用Python.我在HTML页面上为此目的尝试了BeautifulSoup并且它可以工作,但是在解析包含大量JavaScript的网站时我很困难,因为这些文件的大部分信息都存储在<script>标记中.
任何想法如何做到这一点?
我用 Selenium 编写了几个项目,它完美地满足了我的所有需求,然后我需要一个无头浏览器,并使用 PhantomJS 编写了一个小测试,它工作得很好。然而,PhantomJS 使用了太多内存来启动数百个实例,而这正是我在下一个项目中需要的。
在阅读并重新阅读这个问题和许多其他问题之后: 无头浏览器和抓取 - 解决方案
并进行了大量的在线搜索,我仍然不确定哪种无头浏览器可以满足我的需求。
我需要的:
我的希望是:
目前,ZombieJs 和 HTMLUnit 是我想要测试的两个解决方案,但在我投入大量时间之前,我希望有人已经完成了类似的项目,并且可以为我指明正确的方向。
最近我一直在研究python中的一个项目,涉及为某些代理抓取一些网站.我遇到的问题是,当我试图刮掉一个众所周知的代理站点时,当我要求它找到代理表中IP的位置时,Beautiful Soup并不能达到我的预期.我将尝试为每个代理的IP寻找,当我.get_text()在相应的元素上使用Beautiful Soup的方法时,我会得到这样的输出.
...
.UbZT{display:none}
.f5fa{display:inline}
.Glj2{display:none}
.cUce{display:inline}
.zjUZ{display:none}
.GzLS{display:inline}
98120169.117.186373161218218.83839393101138154165203242
...
Run Code Online (Sandbox Code Playgroud)
这是我要解析的元素(包含IP的td标记):
<td><span><style>
.lLXJ{display:none}
.qRCB{display:inline}
.qC69{display:none}
.V0zO{display:inline}
</style><span style="display: inline">190</span><span class="V0zO">.</span><span
style="display:none">2</span><div style="display:none">20</div><span
style="display:none">51</span><span style="display:none">56</span><div
style="display:none">56</div><span style="display:none">61</span><span
class="lLXJ">61</span><div style="display:none">61</div><span
class="qC69">110</span><div
style="display:none">110</div><span style="display:none">135</span><div
style="display:none">135</div><span class="V0zO">221</span><span
style="display:none">234</span><div style="display:none">234</div><span class="147">.
</span><span style="display: inline">29</span><div style="display:none">44</div><span
style="display:none">228</span><span></span><span class="qC69">248</span>.<span
style="display:none">7</span><span></span><span style="display:none">44</span><span
class="qC69">44</span><span class="qC69">80</span><span></span><span
style="display:none">85</span><span class="lLXJ">85</span><div
style="display:none">85</div><span class="qC69">100</span><div
style="display:none">100</div><span></span><span class="qC69">130</span><div
style="display:none">130</div><div style="display:none">168</div>212<span
style="display:none">230</span><span class="qC69">230</span><div
style="display:none">230</div></span></td>
Run Code Online (Sandbox Code Playgroud)
该元素的实际文本只是代理的IP.
这是我的代码片段:
# Hide My Ass
pages = ['https://www.hidemyass.com/proxy-list']
for page in pages:
hidemyass = Soup(requests.get(page).text)
rows = hidemyass.find_all(lambda …Run Code Online (Sandbox Code Playgroud) javascript ×5
html ×3
web-scraping ×3
browser ×2
http ×2
python ×2
c# ×1
dom ×1
frontend ×1
headless ×1
html-parsing ×1
htmlunit ×1
http-headers ×1
jquery ×1
node.js ×1
parsing ×1
python-2.7 ×1
reactjs ×1
request ×1
testing ×1
web ×1
web-crawler ×1