【发布时间】:2020-09-13 07:13:54
【问题描述】:
我正在尝试获取连接到此webpage 中每个图像的所有链接。
如果我让 selenium 脚本向下滚动直到它到达底部,我可以获得所有链接。我希望抓取的一个这样的链接是this one。
现在,我的目标是使用请求解析所有这些链接。我注意到我要解析的链接是使用这样的B-uPwZsJtnB 短代码构建的。
然而,
我正在尝试在该网页的页面源中找到的脚本标记中抓取那些不同的shortcode。该页面中大约有600 shortcodes。我创建的脚本只能解析第一个70,比如shortcode,最终可以建立70个合格的链接。
如何使用请求获取所有 600 个链接?
到目前为止,我已经尝试过:
import re
import json
import requests
base_link = 'https://www.instagram.com/p/{}/'
lead_url = 'https://www.instagram.com/explore/tags/baltimorepizza/'
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
req = s.get(lead_url)
script_tag = re.findall(r"window\._sharedData[^{]+(.*?);",req.text)[0]
for item in json.loads(script_tag)['entry_data']['TagPage']:
tag_items = item['graphql']['hashtag']['edge_hashtag_to_media']['edges']
for elem in tag_items:
profile_link = base_link.format(elem['node']['shortcode'])
print(profile_link)
【问题讨论】:
-
您考虑过使用API吗?
-
我建议使用 instagram API...
-
@robots-txt,我很想知道你是如何找出不同的
shortcodes的?此外,您是否必须登录该网站才能确定相同的内容? -
我只看到 79 个
shortcode,即使页面滚动到最后——600 个链接在哪里? -
查看this image,它表示@0m3r 有多少链接。
标签: python python-3.x web-scraping beautifulsoup re