pir*_*pir 6 python regex hyperlink web-scraping
我正在做网络抓取作为学术项目的一部分,所有链接都必须遵循实际内容.令人讨厌的是,"社交媒体管理"网站存在一些重要的错误情况,用户发布链接以检测是谁点击了这些网站.
例如,请考虑linkis.com上的此链接,该链接链接到http:// + bit.ly +/1P1xh9J(由于SO发布限制而分离的链接),后者又链接到http://conservatives4palin.com.出现问题的原因是linkis.com上的原始链接不会自动重定向.相反,用户必须单击右上角的十字形才能转到原始URL.
此外,似乎有不同的变化(参见例如linkis.com链接2,其中十字架位于网站的左下角).这是我发现的唯一两种变体,但可能还有更多.请注意,我使用的网络刮刀与此非常相似.进入实际链接的功能不需要随着时间的推移而稳定/运行,因为这是一次性的学术项目.
如何自动转到原始网址?最好的方法是设计一个找到相关链接的正则表达式吗?
该网站遵循的常见架构是将网站显示为 iframe。示例代码适用于这两种情况。
为了获得最终的 URL,你可以这样做:
import requests
from bs4 import BeautifulSoup
urls = ["http://linkis.com/conservatives4palin.com/uGXam", "http://linkis.com/paper.li/gsoberon/jozY2"]
response_data = []
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
short_url = soup.find("iframe", {"id": "source_site"})['src']
response_data.append(requests.get(short_url).url)
print(response_data)
Run Code Online (Sandbox Code Playgroud)