python网络爬虫(一)
程序员文章站
2022-05-08 17:44:29
...
分析韩寒博客文章列表特征;
<a href="http://blog.sina.com.cn/s/blog_4701280b0102egl0.html" target="_blank">地震思考录</a>
<a title= ····· href= ····
提取字符串里的网络链接地址;
url = str0[href : html + 5]
下载韩寒博客指定的内容到本地。
import urllib.request
#<a title="《论电影的七个元素》——关于我对电影的一些看法以及《后会无期》的一些消息" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html">
#enconfig:utf-8
str0= '<a title="《论电影的七个元素》——关于我对电影的一些看法以及《后会无期》的一些消息" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html">'
title = str0.find(r'<a title')
print(title)
href = str0.find(r'href=')
print(href)
html = str0.find(r'.html')
print(html)
url = str0[href + 6:html +5] #列表切片
print(url)
content = urllib.request.urlopen(url).read()
#print(content)
filename = url[-26:] #文件名称以url中 ‘blog_4701280b0102eo83.html’ 的方式命名
print(filename)
open(filename,'wb').write(content)
遇到的问题:
open 访问任何形式文件 访问非文本格式文件(二进制文件)的时候 访问模式通常加 'b'(即 二进制模式:'rb'或者是'wb'),否则会抛出如下的 TypeError 异常:
open(filename,'w').write(content) #错误格式 要加 'b' 即 'wb'
Traceback (most recent call last):
File "C:\Users\Alen\Desktop\wangluopacchong.py", line 19, in <module>
open(filename,'w').write(content)
TypeError: must be str, not bytes
转载于:https://my.oschina.net/MrYx3en/blog/297930