rob*_*txt 7 python beautifulsoup web-scraping python-3.x python-re
我正在尝试获取连接到此网页中每个图像的所有链接。
如果让 selenium 脚本向下滚动直到到达底部,我可以获得所有链接。我希望抓取的一个这样的链接就是这个。
现在,我的目标是使用请求解析所有这些链接。我注意到我想要解析的链接是使用这样的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)
Run Code Online (Sandbox Code Playgroud)
Instagram 网页使用延迟加载来加载图像。您可以通过两种方式克服这个问题:
第一种方法是更好的方法。
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |