繁体   English   中英

需要帮助以减少执行时间以抓取动态内容

[英]Need help reducing execution time for scraping dynamic content

我目前正在使用Selenium(chrome)从网站上抓取动态内容,但是自动浏览器的处理时间太长。 (我正在抓取的个人资料页面上有一个“查看更多”按钮,每次单击仅加载5个帖子)没有其他方法可以通过单击“查看更多”按钮来访问这些“隐藏”的帖子,花费太长时间以至于无法手动单击按钮以检索前一阵子的帖子。 关于如何加快此过程的任何想法?

网址: https//r1.community.samsung.com/t5/user/viewprofilepage/user-id/5045

在页面上,有一个接受offsetlimit参数的URL。 有了这个,您可以一次收到许多消息。 您可以将其放入循环中,增加offset参数并获取所有不含硒的消息:

    from bs4 import BeautifulSoup
    import requests

    url = 'https://r1.community.samsung.com/t5/user/viewprofilepage/user-id/5045'

    user_id = url.split('/')[-1]
    posts_url = 'https://r1.community.samsung.com/plugins/custom/samsung/samsungelamer2/custom.profile-activity?type=posts&offset={}&limit={}&currentUser={}'

    offset = 0
    limit = 100

    soup = BeautifulSoup(requests.get(posts_url.format(offset, limit, user_id)).text, 'lxml')

    for i, (subject, message_body) in enumerate(zip(soup.select('.message-subject'), soup.select('.lia-message-body-content')), 1):
        print('Message {}'.format(i))
        print('Subject:\n', subject.text.strip())
        print('Message body:\n', message_body.text.strip())
        print('*' * 120)

印刷品:

    Message 1
    Subject:
     안드로이드 Q Beta 프리뷰 5 새로운 제스쳐
    Message body:
     안드로이드 Q O ...

    ...and so on.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM