如何从给定的网站中提取社交信息?
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.com
和twitter.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