本篇内容:
1.提取知乎可用的请求信息。
2.爬取单个知乎用户的关注者列表。
1.提取知乎可用的请求信息。
问题:爬虫访问知乎网站时,被检测出非人行为,强行跳转到另一个非相关网页,
解决方法:修改header信息,根据实际浏览器信息修改。
这个是我们爬取的第一个用户主页。
左下角可以看到他的关注者有769人,点击关注者就能看到更详细的用户信息。
扬州田鸡等用户的url,可以通过此方法爬取,之后只要重复上述步骤就能完成爬取用户工作。
通过对网页源代码进行分析就可以知道,我们需要的url 分别在这两个网页的这两个标签中。
bs.find('div', class_='NumberBoard FollowshipCard-counts NumberBoard--divider').find_all('a')
bs.find('div',class_='List').find_all('a',class_='UserLink-link')
之后,就按计划完善即可。
图中遇到的问题就是被强制跳转到其他网页了。
你需要一个更加真实的header。
使用chrome的工具对网页真实请求进行分析。
可以看到header的信息,把它作为爬虫的header,就能实现对知乎的访问了。
由于涉及个人信息安全,这里就不提供全部代码了。
有兴趣的同学可以,按下面的不完全代码进行修改,共同学习,共同进步。
其中并没有用代理,可以把代理语句删掉,或将这个header换为你的header。
# -*- coding: utf-8 -*-
import sys
sys.path.append('../lib')
from lib_demo import get_proxie
import requests
from bs4 import BeautifulSoup
import random
import time
import socket
import http.client
def get_content(url, data = None):
timeout = random.choice(range(80,180))
while True:
try:
response = requests.get(url, headers=headers, timeout=timeout)
status =