鱼C论坛

 找回密码
 立即注册
查看: 1781|回复: 17

[已解决]关于爬虫翻页问题,同一个url。之前试过page{i},但好像不行

[复制链接]
发表于 2020-4-18 11:26:21 | 显示全部楼层 |阅读模式
1鱼币
import requests
import bs4
import re
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'}
res = requests.get("https://www.agefans.tv/recommend",headers=headers)


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'}
res = requests.get("https://www.agefans.tv/recommend", headers=headers)
soup = bs4.BeautifulSoup(res.text, 'html.parser')

#动漫名

soup = bs4.BeautifulSoup(res.text, 'html.parser')
animation = []
targets = soup.find_all("li",class_="anime_icon2")
for each in targets:
        animation.append(each.h4.a.text)

#集数


soup = bs4.BeautifulSoup(res.text, 'html.parser')
jishu = []

targets = soup.find_all("li",class_="anime_icon2")
for each in targets:
  jishu.append(each.a.span.text)


result = []
length = len(animation)
for i in range(length):
  result.append(animation[i] + jishu[i] + '\n')

#lastpage = soup.find(name='a', attrs={'class': ['pbutton', 'asciifont']}, text=re.compile('尾页'))
#print(lastpage.attrs['href'].split('=')[-1])
with open("age动漫推荐.txt", "w", encoding="utf-8")as f:
   for each in result:
    f.write(each)
最佳答案
2020-4-18 11:26:22
本帖最后由 qiuyouzhi 于 2020-4-18 13:03 编辑

这直接写个循环遍历一遍就行:
import requests
import bs4
import re
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'}
res = requests.get("https://www.agefans.tv/recommend",headers=headers)


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'}
for i in range(1, 6):
    url = f"https://www.agefans.tv/recommend?page={i}"
    print(url)
    res = requests.get(url, headers=headers)
    soup = bs4.BeautifulSoup(res.text, 'html.parser')

    #动漫名

    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    animation = []
    targets = soup.find_all("li",class_="anime_icon2")
    for each in targets:
            animation.append(each.h4.a.text)
    #集数

    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    jishu = []

    targets = soup.find_all("li",class_="anime_icon2")
    for each in targets:
      jishu.append(each.a.span.text)


    result = []
    length = len(animation)
    for i in range(length):
      result.append(animation[i] + jishu[i] + '\n')

    #lastpage = soup.find(name='a', attrs={'class': ['pbutton', 'asciifont']}, text=re.compile('尾页'))
    #print(lastpage.attrs['href'].split('=')[-1])
    with open("age动漫推荐.txt", "a", encoding="utf-8") as f:
       for each in result:
           f.write(each)

最佳答案

查看完整内容

这直接写个循环遍历一遍就行:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 11:26:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qiuyouzhi 于 2020-4-18 13:03 编辑

这直接写个循环遍历一遍就行:
import requests
import bs4
import re
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'}
res = requests.get("https://www.agefans.tv/recommend",headers=headers)


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'}
for i in range(1, 6):
    url = f"https://www.agefans.tv/recommend?page={i}"
    print(url)
    res = requests.get(url, headers=headers)
    soup = bs4.BeautifulSoup(res.text, 'html.parser')

    #动漫名

    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    animation = []
    targets = soup.find_all("li",class_="anime_icon2")
    for each in targets:
            animation.append(each.h4.a.text)
    #集数

    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    jishu = []

    targets = soup.find_all("li",class_="anime_icon2")
    for each in targets:
      jishu.append(each.a.span.text)


    result = []
    length = len(animation)
    for i in range(length):
      result.append(animation[i] + jishu[i] + '\n')

    #lastpage = soup.find(name='a', attrs={'class': ['pbutton', 'asciifont']}, text=re.compile('尾页'))
    #print(lastpage.attrs['href'].split('=')[-1])
    with open("age动漫推荐.txt", "a", encoding="utf-8") as f:
       for each in result:
           f.write(each)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:26:00 | 显示全部楼层
你这个网址我表示访问不了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:28:55 | 显示全部楼层
网址访问不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:45:52 | 显示全部楼层
page={i}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:54:23 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 12:26
你这个网址我表示访问不了。。。

可以呀,动漫吗 能看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:54:55 | 显示全部楼层
这个page明显是通过get传参 传过去的,不能用字符串拼接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 12:58:47 | 显示全部楼层
wp231957 发表于 2020-4-18 12:54
可以呀,动漫吗 能看到

哦哦,刚才看不到,现在可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:07:18 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 13:00
这直接写个循环遍历一遍就行:

但是这样的话,后面的f.write(each)就有问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 14:07:47 | 显示全部楼层
rompin 发表于 2020-4-18 14:07
但是这样的话,后面的f.write(each)就有问题了


我这里没有问题?
你先运行一下,我把w改成a了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:08:50 | 显示全部楼层
wp231957 发表于 2020-4-18 12:54
这个page明显是通过get传参 传过去的,不能用字符串拼接

大佬,请赐教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:12:40 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 14:07
我这里没有问题?
你先运行一下,我把w改成a了

第一遍的时候txt里只有四个名字。。。现在就直接报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:14:15 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 14:07
我这里没有问题?
你先运行一下,我把w改成a了

enm。。。txt里只有四个动漫名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 14:16:56 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-4-18 14:22 编辑
rompin 发表于 2020-4-18 14:14
enm。。。txt里只有四个动漫名


我这里正正好好100个
或许你用的是我没有改过的代码,
我改了一下,你现在试试(在原帖那里)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:29:17 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 14:16
我这里正正好好100个
或许你用的是我没有改过的代码,
我改了一下,你现在试试(在原帖那里)

现在没问题。。。
但有什么会在page=3那边报错是为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:31:51 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 14:16
我这里正正好好100个
或许你用的是我没有改过的代码,
我改了一下,你现在试试(在原帖那里)

现在可以了,但为什么有时候会突然报错在print page=3的时候
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 14:39:01 | 显示全部楼层
rompin 发表于 2020-4-18 14:31
现在可以了,但为什么有时候会突然报错在print page=3的时候

哦,那可能是访问有问题
重启就行了
或者你可以改改你的程序,把那一段都搞成main
然后报错了就再次调用main
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 14:40:09 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 14:39
哦,那可能是访问有问题
重启就行了
或者你可以改改你的程序,把那一段都搞成main

哦哦,3q~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表