学习了一下python网络爬虫以下是我做的实例
在其中要注意它的编码格式如果出现了中文建议使用
gbk格式及在文件上添加
#coding=gbk
#coding=gbk
'''
Created on 2019年7月12日
@author: lenovo
'''
import urllib.request
data=urllib.request.urlopen("https://www.csdn.net").read()
print(data)
#自动提取课程页面的QQ群
import urllib.request
import re
data=urllib.request.urlopen("https://edu.csdn.net/huiyiCourse/detail/253").read().decode("utf-8")
pat="(\d*?)
"
result=re.compile(pat).findall(data)
print(result)
先是将通过url将数据读取出来在将添加正则表达式
如果不懂正则表达式 参考我的另一篇博客
https://blog.csdn.net/qq_41311396/article/details/95996958
import urllib.request
import re
data=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8")
pat='(\w*?)'
result=re.compile(pat).findall(data)
print(result)
file=open('F:\Test1\Input.txt','a+')
for i in result:
file.write("\n"+i)
file.close()
info()看相应的简介
getcode()判断状态码
geturl()返回当前网页的url
#coding=gbk
import urllib.request
import re
#urlretrieve(网址,本地文件存储地址)直接下载网页到本地
urllib.request.urlretrieve("http://www.baidu.com","F:\Test1\dow.html")
urllib.request.urlcleanup()
#info()看相应的简介
file=urllib.request.urlopen("https://read.douban.com/provider/all")
print(file.info())
#getcode()判断状态码
print(file.getcode())
#geturl()返回当前网页的url
print(file.geturl())
一般情况下就是使用判读该爬虫访问的网页相应的时间timeout控制
timeout=1则是响应的时间设置为1秒超过则会报超时异常
对于某些常用的网页如百度则不需要太长的时间而对于一些比较特殊的网页则需要将时间设置的
长一些
#超时设置
for i in range(0,100):
try:
file=urllib.request.urlopen("http://www.baidu.com", timeout=1)
print(len(file.read()))
except Exception as err:
print("出现异常"+str(err))
keyword="Python"
url="http://www.baidu.com/s?wd"+keyword
data=urllib.request.urlopen(url).read().decode("utf-8")
pat="title:'(.*?)',"
rst=re.compile(pat).findall(data)
print(rst)