简单的爬虫例子
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()

实例二


本文介绍了一个简单的爬虫示例,包括爬取豆瓣出版社名称的方法、使用urllib的基础操作及超时设置技巧。此外还展示了如何模拟HTTP请求以及两个具体的新闻爬取案例。
1647

被折叠的 条评论
为什么被折叠?



