我试图从HTML中提取许多页面的数据(数字)。每个页面的数据都不同。当我尝试使用soup.select(’span [class =“ pull-
right”]’)时,它应该给我编号,但只有标签出现。我相信这是因为网页中使用了Javascript。180,476是我要在许多页面上使用的特定HTML处的数据位置:
<div class="legend-block--body">
<div class="linear-legend--counts">
Pageviews:
<span class="pull-right">
180,476
</span>
</div>
<div class="linear-legend--counts">
Daily average:
<span class="pull-right">
8,594
</span>
</div></div>
我的代码(这在很多页面上都是循环的):
res = requests.get(wiki_page, timeout =None)
soup = bs4.BeautifulSoup(res.text, 'html.parser')
ab=soup.select('span[class="pull-right"]')
print(ab)
输出:
[<span class="pull-right">\n<label class="logarithmic-scale">\n<input
class="logarithmic-scale-option" type="checkbox"/>\n Logarithmic scale
</label>\n</span>, <span class="pull-right">\n<label class="begin-at-
zero">\n<input class="begin-at-zero-option" type="checkbox"/>\n Begin at
zero </label>\n</span>, <span class="pull-right">\n<label class="show-
labels">\n<input class="show-labels-option" type="checkbox"/>\n Show
values </label>\n</span>]
范例网址:https://tools.wmflabs.org/pageviews/?project
= en.wikipedia.org&platform = all-access&agent = user&range = latest-20&pages
=
Star_Wars:_The_Last_Jedi
我想要浏览量
如果您使用requests.get检索页面,则JavaScript代码将不会执行。因此,应改为使用硒。在浏览器中打开页面时,它将模仿用户喜欢的行为,因此将执行js代码。
要开始使用selenium,您需要安装pip install selenium
。然后使用以下代码检索您的商品:
from selenium import webdriver
browser = webdriver.Firefox()
# List of the page url and selector of element to retrieve.
wiki_pages = [("https://tools.wmflabs.org/pageviews/?project=en.wikipedia.org&platform=all-access&agent=user&range=latest-20&pages=Star_Wars:_The_Last_Jedi",
".summary-column--container .legend-block--pageviews .linear-legend--counts:first-child span.pull-right"),]
for wiki_page in wiki_pages:
url = wiki_page[0]
selector = wiki_page[1]
browser.get(wiki_page)
page_views_count = browser.find_element_by_css_selector(selector)
print page_views_count.text
browser.quit()
注意
:如果需要运行无头浏览器,请考虑使用PyVirtualDisplay(Xvfb的包装器)运行无头WebDriver测试,请参阅“如何在Xvfb中运行Selenium?‘ 欲获得更多信息。
问题内容: 我想使用Python在这样的网页上抓取“正在寻找这些作者:”框中的内容:http : //academic.research.microsoft.com/Search?query=lander 不幸的是,盒子的内容是由JavaScript动态加载的。通常在这种情况下,我可以阅读Javascript来了解发生了什么,或者可以使用Firebug之类的浏览器扩展来了解动态内容的来源。这次没有
问题内容: 我正在使用Python从网站上抓取内容。首先,我用和Python的,但我看到,该网站有一个按钮,通过JavaScript创建的内容,所以我决定使用。 假设我可以使用Selenium等方法找到元素并获取其内容,那么当我可以对所有内容都使用Selenium时,有什么理由要使用? 在这种特殊情况下,我需要使用Selenium来单击JavaScript按钮,以便更好地使用Selenium进行解
我已经使用Python Beautifulsoup从该网站的所有页面中,将此表中的数据刮取到字典中,如下面的代码所示。 然而,我也在努力为每一家有自己独立页面的公司拼凑,并将其编入词典。
问题内容: 我想从网站上获取每天的日出/日落时间。是否可以使用Python抓取网络内容?使用什么模块?有没有可用的教程? 问题答案: 结合使用urllib2和出色的BeautifulSoup库:
问题内容: 免责声明:我在StackOverflow上看到过许多其他类似的帖子,并尝试以相同的方式进行操作,但是它们似乎在此网站上不起作用。 我正在使用Python-Scrapy从koovs.com获取数据。 但是,我无法获得动态生成的产品尺寸。具体来说,如果有人可以引导我从此链接的下拉菜单中获取“不可用”尺寸标签,我将不胜感激。 我可以静态获取尺寸列表,但这样做只能得到尺寸列表,但不能获得其中的
本文向大家介绍Python使用Scrapy框架进行抓取,包括了Python使用Scrapy框架进行抓取的使用技巧和注意事项,需要的朋友参考一下 示例 首先,您必须建立一个新的Scrapy项目。输入要存储代码并运行的目录: 要刮擦,我们需要一只蜘蛛。蜘蛛定义了如何刮除某个站点。以下是蜘蛛的代码,该代码遵循指向StackOverflow上投票最高的问题的链接,并从每个页面中抓取一些数据(源): 将您的