吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1633|回复: 20
收起左侧

[求助] python新手求助 抓取网页 无法遍历 只出来一个结果

[复制链接]
hahawangzi 发表于 2020-4-14 14:21
问题如下:#_*_ coding:"UTF-8" _*_

import os,sys
import requests
from bs4 import BeautifulSoup
import re

#-------------------------------------

url='http://www.dashuzhai.com/lingyikongbu/yichangguishi/yichangguishi1guIDAopia/'
headers={
     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
  
        }
r=requests.get(url,headers=headers)
r.encoding="gbk"
mulu=BeautifulSoup(r.text,'html.parser')
print(mulu.find('title').get_text()[0:8])
dict={}
for i in mulu.find_all('div',class_="mulu"):
    for j in i.find_all('ul'):
        print(j.find('a').getText())

    #print(i.find('a',href=re.compile('/lingyikongbu/\D')).getText())
捕获.JPG
我用遍历寻找mululist 然后用正则搜索href 并或许 改text 但是每次就出来一个墓地枷声1
后面的就遍历不到了,搞不清楚问题在哪里
如果我用 find_all('div',class_="mulu") 然后获取他的getText倒是能够获得 但并不是遍历出来的 结果
后面我要每章名字对应地址,求各位老师指点迷津

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

LLL9692 发表于 2020-4-14 14:31
如果数据在响应体里面 可以用 xpath 比较方便
lntuer 发表于 2020-4-14 14:31
小屎球 发表于 2020-4-14 14:33
本帖最后由 小屎球 于 2020-4-14 14:51 编辑

mulu中就一个div,所以只循环一遍就完了
随便改了下 你再细化一下
[Python] 纯文本查看 复制代码
print(mulu.find('title').get_text()[0:8])
dict={}
for i in mulu.find_all('div',class_="mulu"):
    j = i.find_all('li')
for li_a in j:
    print(li_a.find('a').getText())
辣丝丝小白菜 发表于 2020-4-14 14:45
用 select 或select_one。mulu.select('.mulu .mululist a')
大海呀大海 发表于 2020-4-14 14:57
你这写的,就一个mulu,为什么要循环?
直接搜索所有class为mululist的标签就好了,或者先找到mulu然后再找该标签下的所有mululist
soup=BeautifulSoup(r.text,'html.parser')
mulu = soup.find('div', class_='mulu')
for i in mulu.find_all('li', class_='mululist'):
    hrefStr = i.find('a')["href"]
    str = i.find('a').text
 楼主| hahawangzi 发表于 2020-4-14 14:59
lntuer 发表于 2020-4-14 14:31
这正则表达式,也是醉了

嘿嘿,我刚学的自己想的,给我一个示范 如果匹配/开头的字符串呢?
 楼主| hahawangzi 发表于 2020-4-14 15:01
小屎球 发表于 2020-4-14 14:33
mulu中就一个div,所以只循环一遍就完了
随便改了下 你再细化一下
[mw_shl_code=python,true]print(mulu.f ...

mulu 下的字 divv 包含了mululist 我以为都能循环出来,原来这样不行的嘛?因为我单独print(j),是包含mulu下 所有mululist以及 href的,j.find('a',href)这样反而只出来一个,真奇怪,这是为什么呀
 楼主| hahawangzi 发表于 2020-4-14 15:02
大海呀大海 发表于 2020-4-14 14:57
你这写的,就一个mulu,为什么要循环?
直接搜索所有class为mululist的标签就好了,或者先找到mulu然后再 ...

但是mulu 下面包含了很多字的mululist 我以为可以全部遍历出来。
因为我试过

for i in mulu.find_all('li', class_='mulu'):
    print(i)
里面mululist的内容全部都包含有的,就是取text的时候 就出来一个,所以觉得奇怪
大海呀大海 发表于 2020-4-14 15:11
hahawangzi 发表于 2020-4-14 15:02
但是mulu 下面包含了很多字的mululist 我以为可以全部遍历出来。
因为我试过

取的时候循环取就好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-6 12:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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