python爬虫练习--爬取豆瓣出版社信息-urllib.error.HTTPError: HTTP Error 418

python爬虫练习–爬取豆瓣出版社信息-urllib.error.HTTPError: HTTP Error 418

从小的demo开始练手爬虫,爬取豆瓣出版社信息.
网址为:https://read.douban.com/provider/all
直接使用urllib库来爬取代码如下:

#简单爬虫的编写
import urllib.request
import re

#提取豆瓣网站出版社名称(已被反爬,需要更新使用requests库并添加请求头)
data=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8")
pat='''<div class="name">(.*?)</div>'''
rst=re.compile(pat).findall(data)

发现有报错爬取失败.报错为:
urllib.error.HTTPError: HTTP Error 418:
了解后发现418错误多半是网站有反爬虫机制,需要我们额外去模仿浏览器客户端来发送请求,

于是改用requests库,并添加了请求头header

#爬取豆瓣出版社信息网站的出版社信息名称
import requests
import re
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
r = requests.get("https://read.douban.com/provider/all",headers=headers)
html = r.text
pat='<div class="name">(.*?)</div>'
rst=re.compile(pat).findall(html)
fh=open("/home/l03099/pathon.txt","w")
for i in range(0,len(rst)):
    fh.write(rst[i]+"\n")
fh.close()

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值