如何从给定的网站中提取社交信息?

Posted

技术标签:

【中文标题】如何从给定的网站中提取社交信息?【英文标题】:How to extract social information from a given website? 【发布时间】:2017-10-05 07:30:21 【问题描述】:

我有一个网站 URL,例如 www.example.com

我想从该网站收集社交信息,例如:facebook url (facebook.com/example)、twitter url (twitter.com/example) 等,如果在任何地方可用,在网站的任何页面上。

如何完成这项任务,建议任何教程、博客、技术..

【问题讨论】:

【参考方案1】:

由于您不知道这些链接的确切位置(在网站的哪个页面上),您可能希望您的蜘蛛基于CrawlSpider 类。这种蜘蛛允许您定义链接提取和网站导航的规则。看这个最小的例子:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class MySpider(CrawlSpider):
    name = 'example.com'
    start_urls = ['http://www.example.com']

    rules = (
        Rule(LinkExtractor(allow_domains=('example.com', )), callback='parse_page', follow=True),
    )

    def parse_page(self, response):
        item = dict()
        item['page'] = response.url
        item['facebook_urls'] = response.xpath('//a[contains(@href, "facebook.com")]/@href').extract()
        item['twitter_urls'] = response.xpath('//a[contains(@href, "twitter.com")]/@href').extract()
        yield item

这个蜘蛛会爬取example.com网站的所有页面,并提取包含facebook.comtwitter.com的URL。

【讨论】:

有帮助,但我只想要同一网站的社交网址。如果网站具有多个不同域(网站)的社交 url,就会出现问题,就像博客一样 如果您在具体示例中更详细地指定要求会容易得多。提供您要检索的网站和信息。 实际上我有大约 10000 个网址,我想为所有人收集社交地址,所以我想这样做!! 只提供一个示例就足够了。我不明白你原来的评论。【参考方案2】:
import requests
from html_to_etree import parse_html_bytes
from extract_social_media import find_links_tree

res = requests.get('http://www.jpmorganchase.com')
tree = parse_html_bytes(res.content, res.headers.get('content-type'))

set(find_links_tree(tree))

来源:https://github.com/fluquid/extract-social-media

【讨论】:

【参考方案3】:

你很可能想要 1.在html页面布局的Header/Footer中搜索链接。因为那是他们最常见的地方。 2.您可以在同一站点的其他页面上找到链接进行交叉引用。 3.您可以检查网站/组织的名称是否在链接中。但这并不可靠,因为名称可能会有所不同或使用绝对奇怪的句柄。

我能想到的就这些了。

【讨论】:

以上是关于如何从给定的网站中提取社交信息?的主要内容,如果未能解决你的问题,请参考以下文章

基于威胁情报的攻击组织画像与溯源——样本中提取PDB开发路径,进而关注到“neeru”等一些有特殊意义的用户名,然后去社交网站上找人名,关联黑客论坛作者信息,邮件等

如何从 Delphi 程序或编译器生成的调试信息中提取局部变量信息(地址和类型)?

如何解析 HTML 或将 HTML 转换为 XML,以便我从网站中提取信息(在 C# 中)[重复]

如何从不同的表条目中提取信息:Text vs. DIV vs. SPAN

如何使用 Ajax 和 Jquery 从 PHP 数据库中提取信息,并使用该信息填充元素?

如何通过 NLTK 提取我想要的信息