网页访客qq抓取(爬取过程中需要获取的关键信息:需要准备的工具 )
优采云 发布时间: 2021-11-05 17:10网页访客qq抓取(爬取过程中需要获取的关键信息:需要准备的工具
)
周末两天在QQ空间写了一个访客记录爬虫,分享到这里;本文将列出所有要做的步骤,并一步步实现这个爬虫程序。
特别说明:
爬取过程中需要获取的关键信息如下:
需要准备的工具有:
准备好我们需要使用的工具后,我们开始获取上面列出的关键信息。
第一个是访问者列表的URL,在这里我们可以使用chrome浏览器抓包。首先打开chrome浏览器,打开QQ空间个人中心,上面会有一排导航栏,我们选择“更多”-“访客”
点击“Guest”进入后,我们在浏览器页面右击选择Check,可以看到下方会出现一排工具栏,然后我们选择“Network”项:
刷新页面后,会加载一些url。我们在过滤器的输入框中输入“cgi_get_visitor_more”对加载的内容进行过滤,得到以cig_get_visitor开头的url,其中收录g_tk的信息。点击url,我们可以看到右侧Response加载的访客信息:
接下来我们回到QQ空间个人中心的主页面,同样在浏览器的Network中查看一个cgi_get_visitor_simple开头的url,在右边的“Headers”中找到cookie值:
准备好这些内容后,我们就可以开始编写python代码了:
首先我们使用webdriver调用chrome浏览器,登录QQ空间获取cookie中的skey,其中qq_number填写你的QQ号,password为QQ登录密码:
def testLogin():
# 抓取空间访客爬虫
qq_number = '*******'
password = '******'
login_url = 'https://i.qq.com/'
driver = webdriver.Chrome()
driver.get(login_url)
# QQ空间登录表单
driver.switch_to_frame('login_frame')
driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="u"]').send_keys(qq_number)
driver.find_element_by_xpath('//*[@id="p"]').send_keys(password)
time.sleep(1)
driver.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(1)
cookie_list = driver.get_cookies()
cookie_dict = {}
for cookie in cookie_list:
if 'name' in cookie and 'value' in cookie:
cookie_dict[cookie['name']] = cookie['value']
return cookie_dict[u'skey']
上述函数将获取登录cookie并返回解析后的skey;然后用得到的skey计算g_tk。计算g_tk的值,网上有很多现成的实现流程。下面是python的实现:
<p>def get_gtk(skey=u"******")://传入skey
hash = 5381
for i in skey:
hash += (hash