【问题标题】:Webscraping - Python - Can't find links in htmlWeb Scraping - Python - 在 html 中找不到链接
【发布时间】:2016-11-19 10:12:50
【问题描述】:

我正在尝试从https://www.udemy.com/courses/search/?q=sql&src=ukw&lang=en 中抓取所有链接,但是即使没有选择元素,我的代码也没有检索到任何链接。请在下面查看我的代码。

import bs4,requests as rq
Link = 'https://www.udemy.com/courses/search/?q=sql&src=ukw&lang=en'
RQOBJ = rq.get(Link)
BS4OBJ = bs4.BeautifulSoup(RQOBJ.text)
print(BS4OBJ)

【问题讨论】:

  • 您希望获取的链接是什么?任何例子,我试试你的代码,它给了我很多 html 字符串,它似乎很好
  • 抱歉,我不是很清楚。我想要课程链接...udemy.com/the-complete-sql-bootcamp
  • 是的,我明白了...不幸的是,该网站是动态生成的,这意味着它禁止使用 ajax 生成部分 html 内容的简单网络爬取。你可以试试 CasperJs,它模拟用户访问而不是爬虫,我有一个 Facebook 粉丝页面的例子,github.com/linpingta/facebook-related/tree/master/…

标签: python python-3.x web-scraping beautifulsoup


【解决方案1】:

希望您想要页面上的课程链接,此代码会有所帮助

from selenium import webdriver
from bs4 import BeautifulSoup
import time

baseurl='https://www.udemy.com'
url="https://www.udemy.com/courses/search/?q=sql&src=ukw&lang=en"
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)

time.sleep(5)
content = driver.page_source.encode('utf-8').strip()
soup = BeautifulSoup(content,"html.parser")
courseLink = soup.findAll("a", {"class": "card__title",'href': True})

for link in courseLink:
    print baseurl+link['href']

driver.quit()

它将打印:

https://www.udemy.com/the-complete-sql-bootcamp/
https://www.udemy.com/the-complete-oracle-sql-certification-course/
https://www.udemy.com/introduction-to-sql23/
https://www.udemy.com/oracle-sql-12c-become-an-sql-developer-with-subtitle/
https://www.udemy.com/sql-advanced/
https://www.udemy.com/sql-for-newbs/
https://www.udemy.com/sql-for-marketers-data-analytics-data-science-big-data/
https://www.udemy.com/sql-for-punk-analytics/
https://www.udemy.com/sql-basics-for-beginners/
https://www.udemy.com/oracle-sql-step-by-step-approach/
https://www.udemy.com/microsoft-sql-for-beginners/
https://www.udemy.com/sql-tutorial-learn-sql-with-mysql-database-beginner2expert/

【讨论】:

    【解决方案2】:

    网站使用javascript获取数据,你应该使用selenium

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 2019-06-03
      • 2020-09-29
      • 2020-11-01
      • 2016-07-09
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多