爬虫系列(二)

版权声明:本文为博主原创文章,欢迎阅读转载,和引用。 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的标题和正文,应该怎么办?想知道怎么办,看下一篇吧。

猜你喜欢

转载自blog.csdn.net/Moluth/article/details/82530032