寄意寒星丶 发表于 2019-6-29 22:12:28

求教

要求:爬取简书网“推荐作者”信息
http://www.jianshu.com/recommendations/users
爬取信息包括:作者URL、作者ID、最近更新文章、作者类型以及“关注、粉丝、文章、字数和收获喜欢”,并最终保存到一个文件夹中。这个爬虫怎么写啊。

shake_a_tree@16 发表于 2019-6-30 00:08:08

不自己先试试?

新手·ing 发表于 2019-6-30 11:53:59

回答预定,
给点时间

新手·ing 发表于 2019-7-1 20:10:06

from bs4 import BeautifulSoup as bs
import requests
import lxml
import re


writer = []
own_page = []
recent = []
prize = []
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'}
url = 'https://www.jianshu.com/recommendations/users'
#见了个鬼,有的用户数字后面带w
pat = re.compile('<p>(\d+(?:\.\dw)?)</p>')

page = requests.get(url, headers=headers).content
soup = bs(page, 'lxml')
names = soup.find_all('h4', class_='name')
titles = soup.find_all('div', class_='recent-update')
# 作者名
for name in names:
    writer.append(name.get_text())
# 最近更新
for title in titles:
    recent.append()
# 个人主页
for name in names:
    own_page.append('https://www.jianshu.com'+name.parent.attrs['href'])
# 关注 粉丝 文章 字数 喜欢
for each_url in own_page:
    wrap = []
    page = requests.get(each_url, headers=headers).content
    soup = bs(page, 'lxml')
    for data in soup.find_all('div', class_='meta-block'):
      info = re.findall(pat, str(list(data.children)))
      wrap.append(info)
    prize.append(wrap)

新手·ing 发表于 2019-7-1 20:13:18

至于简书的动态加载,我实在不敢恭维,
你看下f12就会发现,请求的地址是有规律的,
你要是爬取全部,就封装一下我的代码。
页: [1]
查看完整版本: 求教