第一个网络爬虫:爬取豆瓣top250
一、requests介绍
import requests
import re
url = 'https://movie.douban.com/top250'
res =requests.get(url)
print(res.text)
问题1.<Response [418]>报错
响应状态:418
正常返回状态应该是 200
问题解决参考链接:
1.requests状态码集合 https://www.cnblogs.com/yitiaodahe/p/9216387.html
418:(‘im_a_teapot’, ‘teapot’, ‘i_am_a_teapot’)
2. 返回418是什么意思?
https://blog.csdn.net/weixin_43902320/article/details/104342771.
就是你爬取的网站有反爬虫机制,我们要向服务器发出爬虫请求,需要添加请求头:headers
3. 如何添加headers?
网页右键“检查元素”(在Google Chrome中),在图示页面找headers内容:
——Network
—— Doc(如果没有出现这一排,可先按F5刷新一下)
——Name下是你搜索的页面的html 点击一下(或按F5再刷新)
—— 找到Headers下面的 User-Agent,复制图示框内所有~
【复制的内容写成字典形式,冒号前的User-Agent作为字典元素的键,冒号后整体以字符串形式(注意加引号)作为键值】
以下问题解决:
import requests
import re
url = 'https://movie.douban.com/top250'
headers ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 OPR/66.0.3515.115'}
res =requests.get(url,headers = headers)
print(res.text)
二、正则表达式
使用正则表达式提取指定字符:
问题2:Unresolved reference ‘title’
name = re.findall(