爬虫笔记八

1.爬取网站的流程:
1、确定网站哪个url是数据的来源。
2.简要分析一下网站结构,查看数据一般放在哪里。
3.查看是否有分页,解决分页的问题。
4.发送请求,查看response.text里面是否有我们想要的数据内容。
5.如果有数据,就用相应的提取数据的方法提取数据保存。
6.如果没有,我们就可以通过以下两种方法来实现爬取:
(1)分析数据来源,查看是否通过一些接口获取到的页面数据。(首推)
如果没有在页面中返回数据,我们应该首先想到,数据有可能是从ajax接口中获取的。
分析接口的步骤:
1.查看该接口返回的数据是否使我们想要的。
2.重点查看该接口的请求参数。
了解哪些请求参数是变化的以及他的变化规律。
(2)selenium+phantomjs来获取页面内容。

2.分页的两种方法:
(1)for循环。
for i in range(1,20):
response = requests.get(url %i)

这种方法只能用你知道最大页的前提下。

(2)while True循环
	
	i =0 #初始页码
	while True:
		# print(2)
		json_str = get_conent(url.format(type_,i) ,headers =headers )
		print(json_str)
		#必须要制定跳出循环的边界。
		if  json_str =='[]':
			# print(1)
			break
		json_data = json.loads(json_str)
		parse_json(json_data)

		i+=20

3.该多线程,最重要的是将什么放到队列中。
在这项目中,我们决定将电影的type放到队列中,那么你就要单独提供一个方法,可以获取电影type值。
就是项目中def get_types方法.

这个方法为什么要返回一个[(type,typename)]这样的结构?
原因是,我们获取type 的过程中,还需要获取typename,为了构造refer。

所以每个线程就从队列里面拿出一个type就可以解析内容了。

============================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值