Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从给定的网站中提取社会信息?_Python_Web Scraping_Scrapy_Social Networking - Fatal编程技术网

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

Python 如何从给定的网站中提取社会信息?,python,web-scraping,scrapy,social-networking,Python,Web Scraping,Scrapy,Social Networking,我有一个类似www.example.com的网站URL 我想从这个网站上收集社会信息,比如:facebook url facebook.com/example,twitter url twitter.com/example等,如果可以在任何地方,在网站的任何页面上 如何完成这项任务,建议任何教程、博客、技术。由于您不知道这些链接在网站的哪个页面上,您可能希望将蜘蛛放在课堂上。这种爬行器允许您定义链接提取和网站导航的规则。请参见以下示例: from scrapy.spiders import Cr

我有一个类似www.example.com的网站URL

我想从这个网站上收集社会信息,比如:facebook url facebook.com/example,twitter url twitter.com/example等,如果可以在任何地方,在网站的任何页面上


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

由于您不知道这些链接在网站的哪个页面上,您可能希望将蜘蛛放在课堂上。这种爬行器允许您定义链接提取和网站导航的规则。请参见以下示例:

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。

最有可能是您想要的 1.在html页面布局的页眉/页脚中搜索链接。因为那是他们最常去的地方。 2.您可以与同一站点的其他页面上找到的链接进行交叉引用。 3.您可以检查链接中是否包含站点/组织的名称。但这一个是不可靠的,因为名称可能略有不同或使用绝对奇怪的处理

这就是我所能想到的

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))

来源:

很有帮助,但我只想要同一网站的社交url。如果网站有多个不同领域网站的社交URL(几乎像blogsIt),那么问题就会出现。如果您在具体示例中更详细地指定了要求,那么blogsIt会容易得多。提供一个你想要检索的网站和信息。实际上我有大约10000个URL,我想收集所有人的社交地址,所以我想这样做!!只要提供一个例子就足够了。我不明白你最初的评论。