简单的爬虫例子urllib

1.爬取豆瓣出版社名称

在这里插入图片描述

import urllib.request
tt=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf8")
import re
print(len(tt))
pat1='<div class="name">(.*?)</div>'
tt=re.compile(pat1).findall(tt)
print(tt)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.urllib 基础

1.urlretrieve()

urlretrieve(网址,本地文件储存地址) 直接下载网页或者图片到本地
urllib.request.retrieve(网址,本地文件储存地址)
在这里插入图片描述
在这里插入图片描述

2.urlcleanup()

urlcleanup() 清除缓存

3.info()

得到网页的相应的简介信息info()
不read(),读取的时候是以文件的形式存在.
file=urllib.request.urlopen(“https://read.douban.com/provider/all”)
file.info()
在这里插入图片描述

4.getcode()

getcode() 输出当前的状态码
在这里插入图片描述

4.geturl()

geturl() 获取当前访问的url 的地址
在这里插入图片描述

3.超时设置

就是设置超时的时间值。根据不同的网站反应时间,设置不同的时间。
在这里插入图片描述

在这里插入图片描述

4.模拟http请求

在这里插入图片描述

1.中文会出错可以调用urllib.request.quote(keyword)转码。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.get的使用

在这里插入图片描述
爬取多页改变page。
在这里插入图片描述

3.post 使用

模拟登陆和搜索某些信息会用到
会用到 parse 去设置提交的表单内容。然后利用,Request提交表单.最后再次通过urlopen()。就可访问登陆后的界面
在这里插入图片描述

在这里插入图片描述

4.浏览器的伪装

这里使用的是对headers进行伪装。
在这里插入图片描述
在这里插入图片描述

5.新闻爬取的例子

1.爬取新闻首页
2.得到新闻链接
3.爬取新闻链接
4.寻找有没有frame
5.如果有就抓取frame 下面对应的网页内容
6.如果没有就直接抓取当前页面
因为爬取的界面式gzip 的所以要解压后在对其进行操作。

实例1

在这里插入图片描述
在这里插入图片描述

import urllib.request
import re
import zlib #为了解压
url="https://sports.qq.com/nba/"
file=urllib.request.urlopen(url)
mybytes=file.read()
decompressed_data = zlib.decompress(mybytes ,16+zlib.MAX_WBITS)
data = decompressed_data.decode('gbk',errors="replace")
pat='<a target="_blank" href="(.*?)" class'
cc=re.compile(pat).findall(data)
f = open("./wo.txt", "w",encoding="utf-8")
for i in range(0,len(cc)):
    thispage=urllib.request.urlopen(cc[i])
    # print(thispage.info())
    tt=thispage.read().decode("gbk",errors="replace")
    #有 frame
    # pat="<frame src=(.*?)>"
    pat = '<p class="text" style="TEXT-INDENT:2em">(.*?)</p>'
    data1= re.compile(pat).findall(tt)
    for i in range(len(data1)):
        f.write(data1[i]+"\n")
    print(len(data1))
f.close()

在这里插入图片描述

实例二

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41781408/article/details/88936617
今日推荐