大一小白爬虫初试(初学者必看)

目录:

  • 爬虫基础知识学习网址(简单易懂)
  • 案例分析
  • 我爬取新闻网站所遇到的问题及其解决方法
  • 还存留的疑惑

关于爬虫的基础知识的网站

爬取一个新闻网站

第一步:明确爬虫思路

1)在看完以上教程后,我们可以知道,我们要获取的网页的信息皆来自html源代码,而获取源代码需要我们获得这个网页的url(即链接),所以当我们爬取整个网站时,需要先获得网站的url

2)故而我们需要先观察要爬取的网站的架构
例如我的:
先得到: 大目录下每一项的url
再得到: 该目录项下每一页的url
最后获得: 每一项新闻的url 
(此处可用循环函数) 

3)通过每一项的url,获得该url的html的信息: 
  标题,发布时间,图片,正文等
  (此处可用正则匹配和beautifulsoup)

这一来O(∩_∩)O是不是思路清晰了很多呢?
从我刚刚讲到的就可以知道爬虫最关键的两步就是获得访问权限匹配 了,  下面具体问题具体分析

第二步:获得访问权限

1)网页请求头的获取方法:
按"f12"--然后点击"网络监视器"--在列表中随机点击一个--点击后会出现消息头--在消息头处找到请求头--找到'User-Agent'--其对应的值(这就是请求头啦)
这个是我在刚刚说的那个网站上获得的:

headers = {
    'User_Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0'
}
url = "http://zh.vietnamplus.vn/"
m_response = requests.get(url=url, headers=headers)
m_html = m_response.text

2)其他详细方法请戳-->http://www.cnblogs.com/junrong624/p/5533655.html

第三步:查看页面元素以及正则匹配

把鼠标移到目录位置按右键-"查看元素",可以定位该目录,并看到其在html上对应的代码:

"><span class="title">
<a href="/politics.vnp">时政</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/world.vnp">国际</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/business.vnp">经济</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/social.vnp">社会</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/culture.vnp">文化</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/sports.vnp">体育</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/technology.vnp">科技</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/environment.vnp">环保</a>
</span>

</li>

<li class="parent ">
<span class="title">
<a href="/Travel.vnp">旅游</a>
</span>

</li>

当我从网站上进入其中一项,如:"时政"时,我发现出现的新网页的url正好就是上面的 'politics.vnp'+在首页网址(http://zh.vietnamplus.vn/)后面 http://zh.vietnamplus.vn/politics.vnp

所以我们只要把相应的网址的url字符串匹配出来后再联结在一起再访问就可以访问子网页啦!~

这个时候我们就要用到正则匹配了
(请先装好re包)
到底怎么用呢?请戳下面:

python代码如下:

classifications = re.findall(r’.+?\s’, m_html)#这里就是正则匹配啦
# 利用集合去重
classifications = list(set(classifications))
print classifications
#获取每个分类的url
num = 0
for classification in classifications:
c_url = ‘http://zh.vietnamplus.vn/’ + classification
print c_url
classification

比较高难度点的就用beautifulsoup
到底怎么用呢?请戳下面:

第四步:将爬取的内容保存到文件里
- 参考方法:
http://www.cnblogs.com/ymjyqsx/p/6554817.html

**爬虫过程中遇到的问题: 1>url字符串无法联结 2>url无法访问
方法
方法
3>字符串就是匹配不到,明明没错 4>编码解码等问题
方法

方法

这些内容待我搞明白会继续补充

  • 13
    点赞
  • 220
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值