爬取豆瓣出版社

import urllib.request
import re
# 发现会报错,当使用urllib模块访问https网站时,由于需要提交表单,而python3默认是不提交表单的,所以这时只需在代码中加上以下代码
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
data = urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8")
pettern = '
(.*?)
' result = re.compile(pettern).findall(data) print(f'出版社有:{result}')

此时报错 HTTP Error 418
“HTTP Error 418:”应该是网站的反爬程序返回的。
在使用浏览器访问网站时,访问请求中包含请求头。检测请求头是常见的反爬虫策略。
服务器通过检测请求头判断这次请求是不是人为的。
在程序上加入请求头,这样服务器就会认为这是一个从浏览器发出的人为请求:
修改程序

import urllib.request
import re
import ssl

ssl._create_default_https_context = ssl._create_unverified_context
url='https://read.douban.com/provider/all'
#请求头
herders={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3',
    'Referer':'https://read.douban.com/provider/all',
    'Connection':'keep-alive'}
req = urllib.request.Request(url,headers=herders)
response = urllib.request.urlopen(req)
data = response.read().decode('utf8')
pettern = '
(.*?)
' result = re.compile(pettern).findall(data) print(f'出版社有:{result}')

现在我们成功爬取到所有出版社,我们将爬取的出版社名称保存到excel里

import urllib.request
import re
import ssl
import xlwt
# 导入

from openpyxl import workbook  # 写入Excel表所用

ssl._create_default_https_context = ssl._create_unverified_context
url='https://read.douban.com/provider/all'
#请求头
herders={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3',
    'Referer':'https://read.douban.com/provider/all',
    'Connection':'keep-alive'}
req = urllib.request.Request(url,headers=herders)
response = urllib.request.urlopen(req)
data = response.read().decode('utf8')
pettern = '
(.*?)
' result = re.compile(pettern).findall(data) # 创建工作workbook workbook = xlwt.Workbook() # 创建工作表worksheet,填入表名 worksheet = workbook.add_sheet('表名') # 在表中写入相应的数据 for i in range(len(result)): worksheet.write(i, 0, label=result[i]) # 保存表 workbook.save('出版社.xls')

文章来源于互联网:5.简单的爬虫编写

发表评论