python - 如何抓取 Instagram 个人资料链接 BeautifulSoup?
问题描述
我刚刚开始学习如何使用 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/
你能给我一些建议吗?
解决方案
这适用于所有 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)
推荐阅读
- django - 有人可以解释为什么我需要在 Django 中引用两个模型吗?
- javascript - 使用用户输入更改或更新复选框值
- python - 我无法使用 python 删除列表中的重复行
- java - 登录时可以创建表抛出 MS SQL 管理工作室,但不能通过 jdbc 与同一用户
- php - WP SMTP 插件未读取 wp-config 常量变量
- r - 如何找到一天呈现超过 6 小时的 MacId
- javascript - React Native - 使用获取数组
- multithreading - 堆栈溢出并行更新一个 RT 索引
- matlab - 有向矩阵到无向矩阵
- java - 如何从代理服务器后面的 Java 应用程序访问 Microsoft Graph Java API?