抓取时绕过403

Bypassing 403 while scraping

我想重现代理 this article on how to make your own recommendation system. Basically she starts scraping the page https://www.nosetime.com/pinpai/2-a.html in this notebook to get the names of the perfumes. I tried to do the same but I get an error 403 with requests.get(url). Then I tried to use the same solution as 的结果,但遇到了同样的错误:

url = 'https://www.nosetime.com/pinpai/2-a.html'
response = requests.get(url, proxies={'http':'50.207.31.221:80'})
soup = BeautifulSoup(response.text, 'html.parser')
result = soup.find_all('a', {'class': 'imgborder'})
brand_names = {}
for r in result:
    name = r.next_sibling.text
    split = re.split(r'([a-zA-Z]+)', name)
    brand_names[split[0]] = ''.join(split[1:])

设置 User-Agent HTTP header 以获得服务器的正确响应:

import re
import requests
from bs4 import BeautifulSoup

url = 'https://www.nosetime.com/pinpai/2-a.html'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'}
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')

result = soup.find_all('a', {'class': 'imgborder'})
brand_names = {}
for r in result:
    name = r.next_sibling.text
    split = re.split(r'([a-zA-Z]+)', name)
    brand_names[split[0]] = ''.join(split[1:])

print(brand_names)

打印:

{'欧珑': 'Atelier Cologne', '帕尔玛之水': 'Acqua di Parma', '爱慕': 'Amouage', '安娜苏': 'Anna Sui', '艾克卡帕': 'Acca Kappa', '阿德斯·维尼塔斯': 'Aedes de Venustas', '': 'AV八AV Eight', '密使': 'Agent Provocateur', '阿玛芙': 'Armaf', '伊索': 'Aesop', '阿曼贝斯': 'Armand Basi', '奥瑞斯工坊': 'Atelier des Ors', '埃姆朗德': 'Amouroud', '爱莉安娜·格兰德': 'Ariana Grande', '奥菲尼': 'Auphorie', '燃烧的实验室': 'A Lab on Fire', '阿拉塔雅': 'ALTAIA', '阿芙尼森斯': 'Affinessence', '四月芬芳': 'April Aromatics', '安·杰拉德': 'Ann Gerard', '安东尼奥·班德拉斯': 'Antonio Banderas', '安法斯': 'Anfas', '安吉拉·西帕纳': 'Angela Ciampagna', '雅宝信': 'Aubusson', '阿道夫·多明格斯': 'Adolfo Dominguez', '阿芙南之香': 'Afnan Perfumes', '阿兰德龙': 'Alain Delon', '安东尼奥·维斯孔蒂': 'Antonio Visconti', '阿琪思': 'Arquiste', '安吉斯勒塞': 'Angel Schlesser', '奥斯汀·里德': 'Austin Reed', '阿基马尔': 'Ajmal', '阿克罗': 'Akro', '安妮·克莱因': 'Anne Klein', '阿拉伯乌木': 'Arabian Oud', '安迪·沃霍尔': 'Andy Warhol', '达芬奇的灵魂': 'Anima Vinci', '安尼米尔': 'Animale', '安东尼奥·亚历山德里亚': 'Antonio Alessandria', '艾利克·斯西蒙': 'Alex Simone', '阿夸迪斯特雷萨': 'Acqua di Stresa', '阿嘉莎狗狗': 'Agatha', '阿克米亚香氛': 'Alkemia Perfumes', '埃尔维罗·马汀尼': 'Alviero Martini', '阿尔德·奥·萨法安': 'Ard Al Zaafaran', '艾瓦国际': 'Air-Val International', '安东尼娅之花': "Antonia's Flowers", '尤瑞科香氛': 'Atelier Ulric Fragrances', '阿塔尔收藏': 'Attar Collection', '橙花王国': 'Au Pays de la Fleur d’Oranger', '维特汀尼': 'Adrienne Vittadini', '阿嘉莎·鲁兹·德拉普拉达': 'Agatha Ruiz de la Prada', '雅昵斯比': 'Agnes B', '奥古斯丁·雷耶斯': 'Agustin Reyes', '艾丽丝和彼得': 'Alice & Peter', '艾塔莫达': 'Altamoda', '琥珀无花果': 'Amberfig', '安利': 'Amway', '阿纳摩': 'Anamor', '亚喀巴': 'Aqaba', '弗洛尔之水': 'Aqua Flor', '佛罗伦萨之水': 'Aquaflor Firenze', '阿夸丽丝': 'Aqualis', '爱丝普蕾': 'Asprey London', '布鲁姆香氛室': 'Atelier Bloem', '马泰里工作室': 'Atelier Materi', '雅达': 'Aveda', '空间感': 'Axis', '丰满妇人': 'A Zaftig Woman', '伯格曼协会': 'A.H.A. Bergmann', '杜兰德之香': 'A.P. Durand Parfums', '阿巴娜': 'Abahna', '阿比蒂森': 'Abietson', '阿比诺姆': 'Abinoam', '亚伯拉罕&斯特劳斯': 'Abraham & Straus', '隐匿之香': 'Absentia Aromatics', '赦免': 'Absolument', '西里拉香氛': 'Acidica Perfumes', '自然法则': 'Acousticjus', '加尔达之水': 'Acqua del Garda', '德尔朗格之水': 'Acqua Delle Langhe', '阿夸迪巴维耶拉': 'Acqua di Baviera', '锡拉丘兹水': 'Acqua di Siracusa', '诺瓦拉之水': 'Acqua Novara', '瑞勒之水': 'Acqua Reale', '蒂之水': 'AcquaDì', '意大利之水': 'Acque di Italia', '阿多尼斯': 'Adonis', '阿德瑞娜·卡林姆博': 'Adriana Karembeu', '阿德莉·亚佩尔': 'Adrien Arpel', '漫漫时光': 'Aeon', '艾若珀斯塔': 'Aeropostale', '海漆': 'Agallocha', '琼脂之光': 'Agar Aura', '阿嘉斯恩奇·芭莎': 'Agarscents Bazaar', '美妙巴黎': 'Agatha Paris', '阿加托香氛': 'Agatho Parfum', '冲浪者之水': 'Agua De Surf', '桑伯恩古龙水': 'Aguas de Colonia Sanborns', '奥古斯汀·戴维拉': 'Agustin Davila', '哈加拉': 'Ahjaar', '阿瓦士香氛': 'Ahwaz Fragrance', '爱莎香氛': 'Aisha Perfumes by Neide Albano', '阿吉尼': 'Ajne', '阿肯': 'Akon', '阿尔安布拉': 'Al Ambra', '半岛电视台': 'Al-Jazeera Perfumes', '阿拉丁香氛': 'Aladdin Fragrances', '阿兰·丹尼尔': 'Alain Daniel', '艾伦·布莱恩': 'Alan Bray', '阿伦麦': 'Alen Mak', '阿丽莎·迪克森': 'Alesha Dixon', '亚历山德': 'Alessandro', '亚历山大·德拉奎': "Alessandro Dell' Acqua", '亚历山大黛拉托尔': 'Alessandro Della Torre', '亚历山德拉格鲁克': 'Alexandra Gluck', '亚历山大·马克': 'Alexandre Marc', '亚历山大香氛': 'Alexandria Fragrances', '奥法罗马': 'Alfaroma', '奥尔福德 & 霍夫': 'Alford & Hoff', '爱勒格力': 'Allegri', '艾伦·肖': 'Allen Shaw', '艾莉森': 'Allison', '卡纳里亚斯之舞': 'Alma de Canarias', '艾尔玛香氛1948': 'Almah Parfums 1948', '因尼斯布拉克': 'Alt-Innsbruck', '阿尔塔马尼法图拉化妆品': 'Alta Manifattura Cosmetica', '时尚': 'Alta Moda', '奥特轮·埃森丝之香': 'Altern Essence Perfume', '艾薇德': 'Alverde', '亚马逊绿意': 'Amazongreen', '亚马逊万岁': 'Amazonia Viva', '威尼斯琥珀': 'Ambra di Venezia', '龙涎香': 'Ambregris', '美国偶像': 'American Idol', '全美超模大赛': 'America’s Next Top Model', '亚美利哥·维斯普奇': 'Amerigo Vespucci', '阿米奥特': 'Amiot', '阿米塔·拜
缠': 'Amitabh Bachchan', '安娜·希克曼': 'Ana Hickmann', '安娜罗莎': 'Ana Rosa', '阿娜·莎拉扎': 'Ana Salazar', '安娜斯塔西亚': 'Anastacia', '安德烈 ·思南': 'Andre Sinan', '安德亚斯·瑞彻伯格': 'Andreas Reichenberg', '安迪·罗迪克': 'Andy Roddick', '安法斯科·东宏': 'Anfasic Dokhoon', '安吉拉·佛兰德': 'Angela Flanders', '安妮宾': 'Anine Bing', '安雅·卢比可': 'Anja Rubik', '安茹': 'Anjou', '安卡拉': 'Ankara', '安·斯蒂格': 'Ann Steeger', '安娜·瑞卡': 'Anna Rivka', '安娜贝拉': 'Annabella', '安妮·卡新格': 'Anne de Cassignac', '安妮·普朗德': 'Anne de Péraudel', '安妮·芳婷': 'Anne Fontaine', '安瑞': 'Anre', '安东尼·安布里': 'Anthony Embry', '安东尼': 'Anthony Logistics', "安东尼'彼得": 'Anthony Peter Slotta', '安少沙': 'Anthousa', '安托万和丽丽': 'Antoine & Lili', '安东尼娅索拉': 'Antonija Sola', '安东尼奥·克罗齐': 'Antonio Croce', '安东尼奥·
福斯科': 'Antonio Fusco', '安东里奥·米卢': 'Antonio Miro', '阿波塔卡': 'Apotheca', '美丽苹果': 'Apple Beauty', '苹果之香': 'Apple Parfums', '苹果之林': 'Applewoods', '耶索洛之水': 'Aqua di Jesolo', '阿尔卡纳野船': 'Arcana Wildcraft', '原型': 'Archetypes', '群岛植物': 'Archipelago Botanicals', '阿丽亚娜埃文斯': 'Ariana Evans', '艾瑞尼·易恩登': 'Ariane Inden', '香气': 'MAroma M', '芳香学': 'Aromachology', '艾斯香氛': 'AromaEarth', '阿兰香氛': 'Arran Aromatics', '傲慢': 'Arrogance', '傲慢的猫': 'Arrogant Cat', '艾瑞斯·米若比勒': 'Ars Mirabile', '剃须的艺术': 'Art of Shaving', '阿特利普': 'Artalep', '瑞士阿蒂米斯': 'Artemis of Switzerland', '艾蒿天然': 'Artemisia Natural Perfume', '艺术与气味': 'Arts&Scents', '阿斯科特&英国': 'Askett & English', '艾斯科露': 'Asklöv', '阿斯特丽德': 'Astrid', '盖斯特工作室': 'Atelier de Geste', '艾特勒·弗娄': 'Atelier Flou', '阿蒂朗丝': 'Attirance', '欧巴德': 'Aubade', '奥古斯特': 'Auguste', '奥古斯缇娜': 'Augustina', '奥伦迪斯马': 'Aulentissima', '南极光': 'Australis', '兰博基尼': 'Automobili Lamborghini', '奥
特瑞之香': 'Autre Parfum', '艾瓦·璐克斯': 'Ava Luxe', '艾瑞尔': 'Ayrel', '阿罗拉': 'Ayura', '阿扎古瑞': 'Azagury', '阿琪萨世界': 'Aziza World Fragrances', '阿兹瑞尔': 'Azurel'}