记一次编写python爬虫遇到的问题
程序员文章站
2022-05-11 10:50:53
...
字符编码
字符 | ASCII | Unicode | UTF-8 |
---|---|---|---|
A | 01000001 | 00000000 01000001 | 01000001 |
中 | x | 01001110 00101101 | 11100100 10111000 10101101 |
###将Unicode转换成普通的Python字符串:"编码(encode)"
unicodestring = u"Hello world"
utf8string = unicodestring.encode("utf-8")
asciistring = unicodestring.encode("ascii")
isostring = unicodestring.encode("ISO-8859-1")
utf16string = unicodestring.encode("utf-16")
#将普通的Python字符串转换成Unicode: "解码(decode)" plainstring1 = unicode(utf8string, "utf-8")
plainstring2 = unicode(asciistring, "ascii")
plainstring3 = unicode(isostring, "ISO-8859-1")
plainstring4 = unicode(utf16string, "utf-16")
assert plainstring1==plainstring2==plainstring3==plainstring4
正则表达式
python re
re.compile(r'src=".*(jpg|png)"')
re.findall
python走代理
proxies = {
“http”: “http://localhost:1080“,
“https”: “http://localhost:1080“,
}
r=requests.get(link2, proxies=proxies)
r = requests.get(link)
网页编码转换
摘取下来为Unicode,转换为utf-8再用re更方便
下载图片
可以使用urllib.urlretrieve()时,名字需符合正常名字
如果不是以jpg png这种形式(如:https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTPT-yv6CivN3aqBARjdPU_kD-fPcPQdpv_PLx1mmcHOqSNppfsnkMUgw)
需要response.get(url)得到反馈
response = requests.get(link+url)
img = Image.open(StringIO(response.content))
img.save(name)
StringIO (BytesIO)
from cStringIO import StringIO
与文件的使用方式一样,但它存在于内存,和文件的读写方式相同
创建 f = StringIO('Hello!\nHi!\nGoodbye!')
和此类似的还有BytesIO,非字符串形的可以使用BytesIO
创建目录并保存
如果目录不存在,则无法保存文件
如: 没有test文件夹,img.save("./test/sss.jpg")
失败,需要首先创建文件夹
判断文件夹(或文件)是否存在:os.path.exists(path)
然后os.mkdir(dir)
下一篇: 记一次maven打包遇到的问题