1.确定网址,发起网络请求
import requests
url='https://www.qidian.com/'
req=requests.get(url).content.decode('gbk')
#若爬虫报错 ‘gbk‘ codec can‘t decode byte
#req=requests.get(url).content.decode('gbk',errors='ignore')
- requests.get(url).content:获取内容
- .decode('gbk):解码
解码出现错误Python爬虫中文乱码问题_YiBochun-Blog-CSDN博客
中文乱码
利用requests
库的方法查看默认输出的编码类型
req= requests.get(url)
print(req.encoding)
输出结果为编码ISO-8859-1
,并不是原网页的编码类型。修改编码类型为gbk
即可
response.encoding = 'gbk'
1.代码总结如下:
import requests
url='https://www.qidian.com/'
req = requests.get(url)
req.encoding = 'gbk'
req.encoding = 'utf-8'
req=req.text
2.解析数据
爬虫正则表达式
首先爬取网页的标题,采用的正则表达式为'<title>(.*?)</title>'
,爬取百度标题代码如下:
# coding=utf-8
import re
import urllib
url = "http://www.baidu.com/"
content = urllib.urlopen(url).read()
title = re.findall(r'<title>(.*?)</title>', content)
print title[0]
- (.*?) 是遍历的内容,加()是并返回,不加括号是不返回内容