前言
最近在为“兔叽”增加一些小功能,需要爬取某个网页的文字,途中遇到很多问题,我会在接下来几篇一一写出。
正文
因为是从源码中提取文字,首先,我需要爬取网页源码
在这里,我百度了一下“Python 爬虫”,找到了一个办法,这个办法使用了urllib
urllib2
这两个库,不太好使,我把它放在最后说。
后来我想起我有一份“小Pi闹钟”的源码,这个代码能让我的树莓派每天用语音报出当天的日期和天气预报,正好它抓取文字的爬虫部分是我需要的。
具体方法如下:
# -*- coding:utf-8 -*-
import requests
# 网址主体
url = 'https://www.baidu.com/s'
# 网址小尾巴
payload = {'ie':'utf8', 'wd':'高考日的倒计时'}
# header
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
def getHtmlText(url,payload,code='utf-8'):
try:
r = requests.get(url, params=payload)
r.raise_for_status()
# 用于打印拼好的网址
# ...print r.url
# 把编码转码为 utf-8
r.encoding = code
# print r.text
# ...用于打印源码
return r.text
except:
return ''
if __name__ == '__main__':
html = getHtmlText(url,payload)
这样,我就得到了网页的源码