首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用BeautifulSoup爬行深度

用BeautifulSoup爬行深度
EN

Stack Overflow用户
提问于 2017-12-20 14:35:55
回答 1查看 2.9K关注 0票数 2

在漂亮的汤包中是否有允许用户在站点中设置爬行深度的功能?我对Python还比较陌生,但是我以前在R中使用过MaxDepth,而且爬虫提供了“”,所以爬虫将在一定数量的链接范围内从该领域的主页。

代码语言:javascript
复制
Rcrawler(Website = "https://stackoverflow.com/", no_cores = 4, no_conn = 4, ExtractCSSPat = c("div"), ****MaxDepth=5****)

Python中当前脚本的基本内容将分析页面上的所有可见文本,但我希望设置一个爬行深度。

代码语言:javascript
复制
from bs4 import BeautifulSoup
import bs4 as bs
import urllib.request

def tag_visible(element):
    if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']:
        return False
    elif isinstance(element,bs.element.Comment):
        return False
    return True


def text_from_html(body):
    soup = BeautifulSoup(html, 'lxml')
    texts = soup.findAll(text=True)
    visible_texts = filter(tag_visible, texts)  
    return u" ".join(t.strip() for t in visible_texts)

html = urllib.request.urlopen('https://stackoverflow.com/').read()
print(text_from_html(html))

任何洞察力或方向都会受到赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-21 04:12:25

BeautifulSoup中没有函数,因为BeautifulSoup不是crawler

它只使用HTML解析字符串,这样您就可以在HTML中搜索。

requests中没有函数,因为requests也不是crawler

它只从服务器读取数据,这样您就可以将其与BeautifulSoup或类似的数据一起使用。

如果您使用BeautifulSouprequest,那么您必须自己完成所有工作--您必须从头开始构建爬行系统。

刮痕是真正的爬虫(或者更确切地说,是用来构建蜘蛛和爬行网络的框架)。

而且它还有限制选项

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47908372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档