CPA之家app推广平台是海内很大的推广平台。该网址的数据信息高达数万条,爬取该网址的信息进行数据的剖析。
/2 项目目标/
实现将获取到的QQ,导入excel模板,并天生独立的excel文档。

/3 项目剖析——反爬方法处理/
前期测试时创造,该网站反爬虫处理方法很多,测试到有以下几个:
1. 直策应用requests库,在不设置任何header的情形下,网站直接不返回数据。
2. 同一个ip连续访问40多次,直接封掉ip,起初我的ip便是这样被封掉的。
为理解决这两个问题,末了经由研究,利用以下方法,可以有效办理。
1. 获取正常的 http要求头,并在requests要求时设置这些常规的http要求头。
2. 利用 fake_useragent ,产生随机的UserAgent进行访问。
/4 须要的库和网址/
1. 网址,如下所示:
https://www.cpajia.com/index.php?g=Wap&a=searchua
2. 须要用到的库:requests、time、lxml、ua
/5 项目实现/
1. 我们定义get_page方法, 准备url地址和要求头headers,导入对应的库。
import requests
import os
import re
from fake_useragent import UserAgent
from lxml import etree
house_dict = {} #定义一个字典
def get_page(url, page_num):
pass
url = 'https://www.cpajia.com/index.php?g=Wap&a=search' #网址
ua = UserAgent(verify_ssl=False) #随机的UserAgent
kv = {
'User-Agent': ua.random}
pageList = get_page
2. 下面先容一下如何爬取ajax动态加载的网页方法。
3. 翻页时创造它的url并没有改变,无法大略的通过request.get访问其他页面。据搜索资料,理解到这些网站是通过ajax动态加载技能实现。即可以在不重新加载全体网页的情形下,对网页的某部分进行更新。
4. 通过剖析相应要求,仿照相应参数。再通过requests库的request.post函数去post相对应的参数即可。
详细方法如下:打开开拓者工具,快捷键F12,弗成就Fn + F12。
5. <1>标红的箭头network, 在个中可以看到做事器加载过来的资源。
< 2>标红的框框一个过滤器,你可以按照文件格式筛选。
6. Headers中的request method 中显示我们利用的是POST方法。而且FROM Data 中有一个参数,PageIndex。
利用Form Data 中的数据,编写一个字典,赋值给requests.post中的data即可。
接下来就可以正常访问和翻页了!
7. 对网站发生要求
import requests
import os
import re
from fake_useragent import UserAgent
from lxml import etree
def get_page(url, page_num):
pageList =
for i in range(1, page_num + 1):
formdata = {'PageIndex': i}
ua = UserAgent(verify_ssl=False)
kv = {'User-Agent': ua.random}
pageList = get_page
8. 对要求到的数据进行处理,详细过程如下所示。
9. 用谷歌浏览器选择开拓者工具或者按F12,找到相对应的QQ号的链接。
response = requests.post(url=url, data=formdata, headers=kv)
html = response.content.decode('utf-8')
parse_html = etree.HTML(html)
page = parse_html.xpath('//div[@class=\"大众wrap\公众]//div[@class=\"大众list-main\"大众]')
for li in page:
house_dict['项目'] = li.xpath('.//div[@class=\"大众main-top\"大众]//b/text')[0].strip
house_dict['QQ'] = li.xpath('.// div[ @class =\公众main-com\"大众]//span//a/text')[0].strip
#print(house_dict)
10. 将获取的信息写入excel表格
f = open('QQ号.csv', 'a', encoding='utf-8') # 以'w'办法打开文件
f.write(str(house_dict))
print(house_dict)
f.write(\"大众\n\公众)# 键和值分行放,键在单数行,值在双数行
f.close
注:cvs文件会涌现乱码,我们点击文件选择Excel事情薄,后缀名是xlsx;再点保存即可。
11. 输入要爬取的页数
pageList = get_page(url, 100)#页数(网址,页数)
/5 效果展示/
1. 点击绿色按钮运行,将结果显示在掌握台,如下图所示。输入你要爬取的页数。
2. 打开Excel表格,如下图所示。
/6 小结/
1. 学习requests 库的利用以及爬虫程序的编写。
2. 学习利用反爬虫技能手段,并在实际运用中运用这些技能。
3. 不建议抓取太多数据,随意马虎对做事器造成负载,浅尝辄止即可。
4. 希望通过这个项目,能够找到得当的平台进行推广。