2019-12-03 Python3 作业 爬取豆瓣读书所有出版商信息

用urllib去做

#会触发反爬 HttpError 418:
pattern = '
(\w+)
' import urllib.request try: web = urllib.request.urlopen('https://read.douban.com/provider/all').read() except Exception as er: print(er) result = re.complie(pattern).findall((web)) print(result) >>>HTTP Error 418:

用requests去做

import requests
import random
url = 'https://read.douban.com/provider/all'

#添加一些代理
user_list = ["Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7",
    "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14",
    "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14",
    "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7",
    "Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10",
    "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)",
    "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB5",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)",
    "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"]
headers = {
    'User-Agent':random.choice(user_list)
}
r = requests.get(url=url,headers=headers)
web = r.text
result = re.compile(pattern).findall((web))
print(result)
r = requests.get(url=url)
>>>['安徽文艺出版社', '博集天卷', '百花洲文艺出版社', '北京阅览文化传播有限公司', '白马时光', '八光分文化', '重庆大学出版社', '读客文化', '电子工业出版社', '第一财经周刊', '巴别塔文化', '大星文化', '凤凰壹力', '凤凰联动', 'Fiberead', '果麦文化', '杭州蓝狮子文化创意股份有限公司', '后浪出版公司', '华东师范大学出版社', '华章数媒', '汉唐阳光', '华章同人', '虹膜出版', '化学工业出版社', 'HarperCollins', '湖南文艺出版社', '湖南科学技术出版社', '今古传奇', '江苏人民出版社', '江苏凤凰文艺出版社', '科幻世界', '酷威文化', '理想国', '联合读创', '领读文化', '磨铁数盟', '浦睿文化', 'Parkstone', '清华大学出版社', '青岛出版社', '人民文学出版社', '人民邮电出版社', '人民东方出版传媒', '上海九久读书人', '世纪文景', '四川数字出版传媒有限公司', '上海译文出版社', '上海雅众文化', '上海社会科学院出版社', '社会科学文献出版社', '山西春秋电子音像出版社', '陕西人民出版北京分公司', '世界图书出版公司北京公司', '上海文艺出版社', '上海人民出版社', '上海交通大学出版社', '斯坦威图书', '上海音乐出版社', '图灵社区', '未读', '新星出版社', '雪球', '悬疑世界', '新华出版社', '新经典文化电子书', '译林出版社', '阳光博客', '悦读名品', '阅文集团华文天下', '中信出版社', '中国人民大学出版社', '中作华文', '中国轻工业出版社', '紫图图书', '浙版数媒', '中国经济出版社', '中国民主法制出版社', '浙江大学出版社', '湛庐文化', '浙江文艺出版社', '中华书局', '中联百文']

你可能感兴趣的:(Python3)