shonmark 2017-12-06 12:28 采纳率: 0%
浏览 392

问下爬知乎的思路,后面凑字数

我用requests和selenium试了下,知乎好像做了什么处理。用chromedriver可以打开我要的网页。
但是打印出来的结果和打开的页面完全不一样。全是账号冻结什么的。感觉知乎的web开发者在和我开玩笑。
from bs4 import BeautifulSoup
from selenium import webdriver

browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/search?type=content&q=ppp%E9%A3%8E%E9%99%A9%E6%8E%A7%E5%88%B6')

soup = BeautifulSoup(browser.page_source, 'lxml')
print(soup)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 04:58
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,首先你需要了解如何使用Selenium和Python来抓取网页内容。下面是一个基本的步骤:

    1. 安装必要的库:确保你已经安装了selenium库,并且你的系统上安装了ChromeDriver(如果想模拟浏览器行为)。

    2. 导入所需的模块:

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    1. 设置ChromeDriver路径:如果你还没有设置ChromeDriver,请先下载并安装它。然后,你可以将ChromeDriver路径添加到环境变量或配置文件中。

    2. 打开Chrome浏览器并访问目标URL:

    driver = webdriver.Chrome('/path/to/chromedriver')
    driver.get('http://example.com')
    

    这里替换 /path/to/chromedriver 为实际的ChromeDriver路径。

    1. 使用Selenium来获取HTML源码:
    html = driver.page_source
    
    1. 解析HTML源码以提取所需信息:
    soup = BeautifulSoup(html, 'html.parser')
    # 这里是根据你的需求解析HTML的内容
    print(soup)
    
    1. 如果你想进一步处理数据,你可以使用BeautifulSoup或其他类似的库来实现这个功能。
    for tag in soup.find_all("tag"):
        # 这里是处理每个标签的方法
        pass
    

    注意:上述代码仅为示例,实际操作时可能需要根据具体需求进行调整。

    评论

报告相同问题?