rompin 发表于 2020-4-18 11:26:21

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

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 + jishu + '\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)

qiuyouzhi 发表于 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 + jishu + '\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)

qiuyouzhi 发表于 2020-4-18 12:26:00

你这个网址我表示访问不了。。。

乘号 发表于 2020-4-18 12:28:55

网址访问不了

可乐西瓜 发表于 2020-4-18 12:45:52

page={i}

wp231957 发表于 2020-4-18 12:54:23

qiuyouzhi 发表于 2020-4-18 12:26
你这个网址我表示访问不了。。。

可以呀,动漫吗 能看到

wp231957 发表于 2020-4-18 12:54:55

这个page明显是通过get传参 传过去的,不能用字符串拼接

qiuyouzhi 发表于 2020-4-18 12:58:47

wp231957 发表于 2020-4-18 12:54
可以呀,动漫吗 能看到

哦哦,刚才看不到,现在可以了{:10_250:}

rompin 发表于 2020-4-18 14:07:18

qiuyouzhi 发表于 2020-4-18 13:00
这直接写个循环遍历一遍就行:

但是这样的话,后面的f.write(each)就有问题了

qiuyouzhi 发表于 2020-4-18 14:07:47

rompin 发表于 2020-4-18 14:07
但是这样的话,后面的f.write(each)就有问题了

我这里没有问题?
你先运行一下,我把w改成a了

rompin 发表于 2020-4-18 14:08:50

wp231957 发表于 2020-4-18 12:54
这个page明显是通过get传参 传过去的,不能用字符串拼接

大佬,请赐教

rompin 发表于 2020-4-18 14:12:40

qiuyouzhi 发表于 2020-4-18 14:07
我这里没有问题?
你先运行一下,我把w改成a了

第一遍的时候txt里只有四个名字。。。现在就直接报错了

rompin 发表于 2020-4-18 14:14:15

qiuyouzhi 发表于 2020-4-18 14:07
我这里没有问题?
你先运行一下,我把w改成a了

enm。。。txt里只有四个动漫名

qiuyouzhi 发表于 2020-4-18 14:16:56

本帖最后由 qiuyouzhi 于 2020-4-18 14:22 编辑

rompin 发表于 2020-4-18 14:14
enm。。。txt里只有四个动漫名

我这里正正好好100个
或许你用的是我没有改过的代码,
我改了一下,你现在试试(在原帖那里)

rompin 发表于 2020-4-18 14:29:17

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

现在没问题。。。
但有什么会在page=3那边报错是为什么

rompin 发表于 2020-4-18 14:31:51

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

现在可以了,但为什么有时候会突然报错在print page=3的时候

qiuyouzhi 发表于 2020-4-18 14:39:01

rompin 发表于 2020-4-18 14:31
现在可以了,但为什么有时候会突然报错在print page=3的时候

哦,那可能是访问有问题
重启就行了
或者你可以改改你的程序,把那一段都搞成main
然后报错了就再次调用main

rompin 发表于 2020-4-18 14:40:09

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


哦哦,3q~
页: [1]
查看完整版本: 关于爬虫翻页问题,同一个url。之前试过page{i},但好像不行