版权声明:本文为博主原创文章,欢迎阅读转载,和引用。 https://blog.csdn.net/Moluth/article/details/82530032
爬虫系列(二)
上一篇文章中已经可以爬取一个页面的数据了,从本篇开始,处理上一篇中提到的具体任务。本篇文章要实现爬取某新闻网站的某些页面,并存储下来,已经有了这些页面的url。
这是一个很简单的爬虫任务,准备几个url和上篇中最后的代码段,然后添加几行代码即可。这里实现一个只有5个url的爬虫,实际上可能有成千上万个,甚至更多。当url太多的时候可能要把url存到文件中,读一个url,写一个文件。爬取数据后存到a0-5.html中。下面是具体实现:
from urllib import request
header_dict = {
"Accept":"application/json, text/javascript, */*; q=0.01",
"Accept-Language":"zh-CN,zh;q=0.9",
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
}
def get_http(load_url,header):
res=""
try:
req = request.Request(url=load_url,headers=header)#创建请求对象
coonect = request.urlopen(req)#打开该请求
byte_res = coonect.read()#读取所有数据,很暴力
try:
res=byte_res.decode(encoding='utf-8')
except:
res=byte_res.decode(encoding='gbk')
except Exception as e:
print(e)
return res
url_list=[
"http://news.sina.com.cn/c/2018-09-08/doc-ihivtsyi6434298.shtml",
"http://finance.sina.com.cn/stock/usstock/c/2018-09-08/doc-ihivtsyi7277192.shtml",
"http://sports.sina.com.cn/china/national/2018-09-08/doc-ihivtsyi6890841.shtml",
"http://k.sina.com.cn/article_5919806896_160d915b000100bi6d.html?from=auto&subch=nauto",
"http://k.sina.com.cn/article_5919806896_160d915b000100bi6d.html?from=auto&subch=nauto"
]
for i in range(len(url_list)):
f=open("./a"+str(i)+".html","w",encoding="utf-8")
page=get_http(url_list[i], header_dict)
f.write(page)
f.close()
如果把这个任务改成,爬取这些url的标题和正文,应该怎么办?想知道怎么办,看下一篇吧。