Python爬虫学习(一)
环境:Mac OSX
终端工具:iTerm2
1. 显示网页源码
- 以baidu为例:
import urllib2 request = urllib2.Request("http://www.baidu.com") response = urllib2.urlopen(request) print response.read()
2. 有关headers
#爬虫中添加headers为了模拟浏览器的工作,否则有的页面不允许直接访问#
- MacOS下查看headers方法:
Chrome:视图-开发者-开发者工具,右侧点击Network,然后单击url(bbs.byr.cn),右边选Headers即可

我们下面要用到User-Agent项,服务器往往会通过该值来判断是否是浏览器发起的请求。
- 加入headers的爬虫示例:
#coding:utf-8 import urllib import urllib2 url = 'http://bbs.byr.cn/index' user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36' values = {'username' : 'xxxxxx', 'password' : '6666666' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) request = urllib2.Request(url, data, headers) response = urllib2.urlopen(request) page = response.read() print (page.decode('gbk').encode('utf-8'))
需要注意编码问题:Python默认编码为ASCII,所以要在前面加上#coding:utf-8。查看网页html源码可以发现<meta>标签中编码属性为GBK,所以print之前需要decode+encode操作,以防汉字显示乱码。
汉字乱码问题可参见-----将python2中汉字会出现乱码的事一次性说清楚
3.正则表达式相关
Python中,数量词默认为贪婪匹配,即尽可能多的匹配字符。
反斜杠、Re问题可参见-----伯乐在线-崔庆才-正则表达式

浙公网安备 33010602011771号