python爬取网站的一些技巧总结

学习python也有一段时间了,今天整理了一份爬取网站数据的基本步骤分享给大家,对于很多爬虫高手来说可能没有什么意义,但是对新学爬虫的小伙伴来说可以参考下。爬取一个网站的数据整体是比较简单的,难度大小跟这个网站有关。以下就是一些小编整理的步骤:
1、设定爬取目标,
目标网站:微博 https://weibo.com/
目标数据每天更新的热搜关键词的链接、标题、标签。
2、 分析目标网站
爬取页面:https://s.weibo.com/weibo?q=%E4%BF%9D%E7%A0%94&topic_ad=
待爬取数据:网页下的超链接的标题和链接,标签列表
目标网站反爬:网站反爬的方式有很多,都有应对策略,比如遇到网站限制IP访问次数时,只需要加上代理IP就可以轻松解决。代理IP的选择有很多,比如这里我们给大家示例代理使用方式的亿牛云代理。代理如何在程序里面添加,示例代码如下:
Plain Text
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// 要访问的目标页面
string targetUrl = “http://httpbin.org/ip”;

// 代理服务器(产品官网 www.16yun.cn)
string proxyHost = “http://t.16yun.cn”;
string proxyPort = “31111”;

// 代理验证信息
string proxyUser = “username”;
string proxyPass = “password”;

// 设置代理服务器
WebProxy proxy = new WebProxy(string.Format(“{0}:{1}”, proxyHost, proxyPort), true);

ServicePointManager.Expect100Continue = false;

var request = WebRequest.Create(targetUrl) as HttpWebRequest;

request.AllowAutoRedirect = true;
request.KeepAlive = true;
request.Method = “GET”;
request.Proxy = proxy;

//request.Proxy.Credentials = CredentialCache.DefaultCredentials;

request.Proxy.Credentials = new System.Net.NetworkCredential(proxyUser, proxyPass);

// 设置Proxy Tunnel
// Random ran=new Random();
// int tunnel =ran.Next(1,10000);
// request.Headers.Add(“Proxy-Tunnel”, String.valueOf(tunnel));

//request.Timeout = 20000;
//request.ServicePoint.ConnectionLimit = 512;
//request.UserAgent = “Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36”;
//request.Headers.Add(“Cache-Control”, “max-age=0”);
//request.Headers.Add(“DNT”, “1”);

//String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding(“ISO-8859-1”).GetBytes(proxyUser + “:” + proxyPass));
//request.Headers.Add(“Proxy-Authorization”, "Basic " + encoded);

using (var response = request.GetResponse() as HttpWebResponse)
using (var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string htmlStr = sr.ReadToEnd();
}
3、实现HTML解析,得到目标数据。获取数据需要进行清洗整理才能得到一份干净有效的数据。
4、将结果数据存储
这只是其的一些必要步骤,细分还有很多的步骤需要学习,但是我们只要掌握了整体框架,把这些都学透了那么爬虫就没有那么难了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值