鱼C论坛

 找回密码
 立即注册
查看: 3492|回复: 18

[已解决]【小白bs4爬虫小问题】

[复制链接]
发表于 2022-8-7 23:46:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
兄弟萌,大佬萌
我想把<div class="simg">名字为a的所有标签提取出来并且得到href的值这一步该怎么弄
除了<div class="simg">标签下,其他标签也有名字为a的子标签,我只想要<div class="simg">的
用soup这个名字,例如(soup.fand_all())
用bs4。xpath和正则表达式我还没学,感谢大佬萌
最佳答案
2022-8-8 11:23:11
hello? 发表于 2022-8-8 11:16
d_list=soup=find_all("div",id_="image")
图片上面的结果是直接print(d_list)
下面是print(d_list[0]) ...


你这网址发的,我室友就在我后面,也不方便帮你看
哪有提到的图片
而且没有 id 叫 image 的 标签啊?
如果你是静态爬虫,请使用查看网页源代码,不是检查
1659886717752.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-8 04:44:08 | 显示全部楼层
得到 href 值就直接 a["href"]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 09:52:19 | 显示全部楼层
liuzhengyuan 发表于 2022-8-8 04:44
得到 href 值就直接 a["href"]

这我知道,不过我不清楚是如何把标签a提取出来的,我用的是soup.find_all("div",id_="image"),但是得到的列表是<div id="image">和下面所有名字为a的标签的总和,也就是他们所有组成了一个元素,我就不知道怎么分别把a提取出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 09:53:04 | 显示全部楼层
我问题里有没有什么没说清楚的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 10:30:55 | 显示全部楼层
hello? 发表于 2022-8-8 09:52
这我知道,不过我不清楚是如何把标签a提取出来的,我用的是soup.find_all("div",id_="image"),但是得到的 ...

你这个问题的话,应该是一个 for 循环把每个 a 元素提取出来然后单独处理(如果没理解错的话),可以参考我之前的代码:
https://fishc.com.cn/forum.php?m ... 306&pid=5922822
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 10:48:30 | 显示全部楼层
方便发一下网址吗,我们好帮你分析码源。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:11:15 | 显示全部楼层
本帖最后由 hello? 于 2022-8-8 11:17 编辑
suchocolate 发表于 2022-8-8 10:48
方便发一下网址吗,我们好帮你分析码源。


当然可以不过你方便嘛,被旁边的人康见了怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:12:50 | 显示全部楼层
suchocolate 发表于 2022-8-8 10:48
方便发一下网址吗,我们好帮你分析码源。

https://www.xiurenwang.cc/
希望版主不会封我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:16:44 | 显示全部楼层
liuzhengyuan 发表于 2022-8-8 10:30
你这个问题的话,应该是一个 for 循环把每个 a 元素提取出来然后单独处理(如果没理解错的话),可以参考 ...

d_list=soup=find_all("div",id_="image")
图片上面的结果是直接print(d_list)
下面是print(d_list[0])
结果一样的,就不清楚a怎么提出来,直接find_all('a')的话又会把其他不需要的提取来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:18:35 | 显示全部楼层
liuzhengyuan 发表于 2022-8-8 10:30
你这个问题的话,应该是一个 for 循环把每个 a 元素提取出来然后单独处理(如果没理解错的话),可以参考 ...

也就是for循环不了,所有我想要的元素都合成一个了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:20:26 | 显示全部楼层
suchocolate 发表于 2022-8-8 10:48
方便发一下网址吗,我们好帮你分析码源。

看来你有前科啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 11:23:11 | 显示全部楼层    本楼为最佳答案   
hello? 发表于 2022-8-8 11:16
d_list=soup=find_all("div",id_="image")
图片上面的结果是直接print(d_list)
下面是print(d_list[0]) ...


你这网址发的,我室友就在我后面,也不方便帮你看
哪有提到的图片
而且没有 id 叫 image 的 标签啊?
如果你是静态爬虫,请使用查看网页源代码,不是检查
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 11:25:01 | 显示全部楼层
hello? 发表于 2022-8-8 11:18
也就是for循环不了,所有我想要的元素都合成一个了

?我的回复被吞了?
能分享一下代码吗(我有事先走了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:28:51 | 显示全部楼层
liuzhengyuan 发表于 2022-8-8 11:25
?我的回复被吞了?
能分享一下代码吗(我有事先走了)
import requests
import urllib.request as u
import random
from bs4 import BeautifulSoup as Be

#代理ip,opener
#选择ip
ip=['101.200.127.149:3129','58.20.184.187:9091',\
    '58.20.184.187:9091','183.247.211.156:30001']
ip_=random.choice(ip)
#创建opener
proxy=u.ProxyHandler({'http':ip_})
opener=u.build_opener(proxy)
u.install_opener(opener)
#header
cookie="Hm_lvt_1060da23a20238049f3e377d46f7e478=1659877599,1659878742,1659879750,1659881285; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_5e2cce81a5cb57f53e7a18f30edb5d19=SabcdA%7C1660054371%7CW042ESC1NoLSJOkN2CBKjKsio1Zi6BWwOcgB7sbl3MK%7C489c6ce7516488747e9f2dce79213d662af2df\
36d1dda1548fb9589d02b4b893; Hm_lpvt_1060da23a20238049f3e377d46f7e478=1659881684"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
         ,"cookie":cookie}
#获取源码
url='https://www.xiurenwang.cc/10599.html'
response=requests.get(url,headers=headers)
content=response.content.decode('utf-8')
soup=Be(content,'lxml')
d_list=soup.find_all("div",id="image")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 11:29:24 | 显示全部楼层
liuzhengyuan 发表于 2022-8-8 11:25
?我的回复被吞了?
能分享一下代码吗(我有事先走了)

只用看获取源码部分就可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 16:37:17 | 显示全部楼层
兄弟萌,我知道了,要用.children获取子标签
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-9 12:11:23 From FishC Mobile | 显示全部楼层
hello? 发表于 2022-8-8 16:37
兄弟萌,我知道了,要用.children获取子标签

强!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-9 21:53:37 | 显示全部楼层

网上搜半天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 04:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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