当前位置: 首页 > 知识库问答 >
问题:

用Python进行网页刮取

东方镜
2023-03-14

最近我一直在用Python和靓汤学习网页刮刮乐。然而,当我试图刮下下面的页面时,我遇到了一点麻烦:

http://www.librarything.com/work/3203347

我想从页面上得到的数据是这本书的标签,但我找不到任何方法来获取数据,尽管我花了很多时间在网上拖网。

我试着在网上看了几本指南,但似乎没有一本奏效。我尝试将页面转换为XML和JSON,但仍然找不到数据。

我现在有点手足无措,如果有任何帮助我会很感激的。

多谢了。

共有3个答案

张嘉
2023-03-14

没有BS的可能实现:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

my_url = 'http://www.librarything.com/work/3203347'
driver = webdriver.Chrome()
driver.get(my_url)

delay = 5 # seconds

try:
    WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'span.tag')))
    print("Page is ready!")
    for element in driver.find_elements_by_css_selector('span.tag'):
        print(element.text)
except TimeoutException:
    print("Couldn't load page")
finally:
    driver.quit()

执行来源:

等待直到由其css标识的元素存在

用硒定位元素

古起运
2023-03-14

我不确定要从页面中删除哪些数据。但如果选中,页面将通过一个javascript加载动态“标记”,该javascript将在页面加载后启动。如果您的刮板只加载DOM控制器并在后台解析网页,而没有在浏览器中加载,那么页面中的任何动态数据都很可能不会加载。

一个可能的解决方案是使用selenium完全加载页面,然后将其刮除。

周高畅
2023-03-14

在分析HTML和脚本之后,通过AJAX加载标记,请求AJAX url使我们的生活变得容易。下面是python脚本。

import requests
from bs4 import BeautifulSoup

content = requests.get("http://www.librarything.com/ajax_work_makeworkCloud.php?work=3203347&check=2801929225").text
soup = BeautifulSoup(content)

for tag in soup.find_all('a'):
    print(tag)
 类似资料:
  • 我刚开始使用web刮取,希望尝试从该站点刮取表,但当我开始查找表的类时,它不起作用,而是显示 以下是我的代码: 下面是代码的输出:输出图像。 如何从站点中刮取表内容?

  • 问题内容: 我想从网站上获取每天的日出/日落时间。是否可以使用Python抓取网络内容?使用什么模块?有没有可用的教程? 问题答案: 结合使用urllib2和出色的BeautifulSoup库:

  • 我可以浏览此网站的第一页: http://ratings.food.gov.uk/enhanced-search/en-GB/^/伦敦/相关性/0/^/^/0/1/10 但我正试图通过使用网站分页中的“下一步”按钮来刮除网站上的所有其他页面。 我单击了Next按钮,可以看到第2页的参数从0/1/10更改为0/2/10,以此类推。 我已经看了分页代码,我可以看到分页在一个Div中 问题是,我仅使用以

  • 我试图刮这个网站:https://ec.europa.eu/research/mariecurieactions/how-to/find-job_en使用Python。 首先,我注意到我感兴趣的表实际上位于以下url:https://ec.europa.eu/assets/eac/msca/jobs/import-jobs_en.htm 然而,请求BS4只给我超文本标记语言的页面源。我假设这是因为

  • 本文向大家介绍20行JS代码实现网页刮刮乐效果,包括了20行JS代码实现网页刮刮乐效果的使用技巧和注意事项,需要的朋友参考一下 分享一段用canvas和JS制作刮刮乐的代码,JS部分去掉注释不到20行代码 效果如下 盖伦.jpg 刮刮乐.gif HTML部分 没什么要特别注意的 为了效果加了些CSS样式 CSS部分 注意 1.为了清除浏览器自带效果加了 2.img需要在灰布下面,加了z-index

  • 我正试图从这一页上删除所有5000家公司。当我向下滚动时,它的动态页面和公司被加载。但我只能刮去5家公司的钱,那我怎么能刮去全部5000家呢?当我向下滚动页面时,URL正在更改。我试过硒,但没用。https://www.inc.com/profile/onetrust注意:我想刮公司的所有信息,但刚才选择了两个。 更新了代码,但页面根本不滚动。更正了BeautifulSoup代码中的一些错误 谢谢