【问题标题】:How to Webscraping Instagram Profile link BeautifulSoup?如何抓取 Instagram 个人资料链接 BeautifulSoup?
【发布时间】:2019-01-30 16:32:40
【问题描述】:

我刚刚开始学习如何使用 BeautifulSoup 进行网络抓取,并想编写一个简单的程序,该程序将通过 Instagram 中的 FullName 获取我偶像的个人资料链接(instagram url)。

示例:我将 FullName 列表存储在文件 fullname.txt 中,如下所示:

#cat fullname.txt
Cristiano Ronaldo
David Beckham
Michael Jackson

我的结果愿望是:

https://www.instagram.com/cristiano/
https://www.instagram.com/davidbeckham/
https://www.instagram.com/michaeljackson/

你能给我一些建议吗?

【问题讨论】:

标签: python beautifulsoup instagram instagram-api


【解决方案1】:

这适用于所有 3 个名称,以及我添加到 fullname.txt 的其他一些名称

它使用 Requests 库和 Bing 搜索来找到正确的链接,然后使用正则表达式从返回的数据包中解析出链接。


import requests, re

def bingsearch(searchfor):

    link = 'https://www.bing.com/search?q={}&ia=web'.format(searchfor)

    ua = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'}

    payload = {'q': searchfor}

    response = requests.get(link, headers=ua, params=payload)               

    try:
        found = re.search('Search Results(.+?)</a>', response.text).group(1)

        iglink = re.search('a href="(.+?)"', found).group(1)

    except AttributeError:
        iglink = "link not found"

    return iglink


with open("fullname.txt", "r") as f:
    names = f.readlines()

for name in names:
    name = name.strip().replace(" ", "+")

    searchterm = name + "+instagram"

    IGLink = bingsearch(searchterm)

    print(IGLink)

【讨论】:

  • 谢谢兄弟。但是当我运行然后得到结果“找不到链接”:(我尝试阅读你的代码。但我不知道要修复它。
  • 奇怪,它在我的电脑上运行。由于我看不到您的计算机在从 Bing 发回的数据包中找到了什么:在上面的代码中,将“print(response)”放在“try:”行之前。然后在终端中查看程序的输出。在您的终端(顶部菜单)中运行搜索,搜索“www.instagram.com/michaeljackson”或它首先搜索的任何名称。如果找到,那么您可以以不同的方式解析输出以获得正确的链接。
  • 我将 print(response) 放在“try”行之前。这是我的结果prntscr.com/meu7a2。你能帮帮我吗?
  • 糟糕,我的意思是“打印(response.text)”。这次会有很大的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
相关资源
最近更新 更多