重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
对于python的中文编码问题可以参考下面的帖子
创新互联是一家专注于成都网站建设、成都做网站与策划设计,金乡网站建设哪家好?创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:金乡等地区。金乡做网站价格咨询:18980820575
同时,对于网页的中文乱码,建立使用requests模块代替urllib\urllib2
requests的content方法,对中文编码,支持比较好,基本不会出现乱码。
req=requests.get(url,cookies=mecookies)
print req.content
具体用法,参见下面两个帖子,较详细:
你这行代码是不需要urlencode()的。
对于返回的request对象,其read()方法获得的其实是一个字节流对象,而非字符串对象,所以这时需要调用该字节流对象的decode()方法,按指定编码方式进行解码。
至于urlencode(),这是urllib中的一个函数,它的作用是将字符串进行url编码。这个编码其实就是个转义的过程,将那些因可能造成解释器误会或安全问题而不适合出现在请求中的符号进行转义,并且把超出url编码表的字符降维。
爬虫我也是接触了1个月,从python小白到现在破译各种反爬虫机制,我给你说说我的方向:
1、学习使用解析网页的函数,例如:
import urllib.request
if __name__ == '__main__':
url = "..."
data = urllib.request.urlopen(url).read() #urllib.request.urlopen(需要解析的网址)
data = data.decode('unicode_escape','ignore') #用unicode_escape方式解码
print(data)
2、学习正则表达式:
正则表达式的符号意义在下面,而正则表达式是为了筛选出上面data中的信息出来,例如:
def get_all(data):
reg = r'(search.+)(" )(mars_sead=".+title=")(.+)(" data-id=")'
all = re.compile(reg);
alllist = re.findall(all, data)
return alllist
3、将得到的结果压进数组:
if __name__ == '__main__':
info = []
info.append(get_all(data))
4、将数组写进excel:
import xlsxwriter
if __name__ == '__main__':
info = []
info.append(get_all(data))
workbook = xlsxwriter.Workbook('C:\\Users\\Administrator\\Desktop\\什么文件名.xlsx') # 创建一个Excel文件
worksheet = workbook.add_worksheet() # 创建一个工作表对象
for i in range(0,len(info)):
worksheet.write(行, 列, info[i], font)#逐行逐列写入info[i]
workbook.close()#关闭excel
一个简单的爬虫搞定,爬虫的进阶不教了,你还没接触过更加看不懂