鱼C论坛

 找回密码
 立即注册
查看: 1276|回复: 7

[已解决]下载了网页源代码如何在到所要东西,求助

[复制链接]
发表于 2020-8-6 14:59:21 | 显示全部楼层 |阅读模式

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

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

x
sos,我想爬取这个网站的商品链接,用到BeautifulSoup的时候不知道如何去找到所需要的东西里,怎么办


import requests
import bs4
import re
import time
import openpyxl

def open_url(url):
    headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'}

    res = requests.get(url, headers=headers,timeout=500)
    return res
   

def main():

    host = "https://www.ebay.com.au/sch/i.html?_from=R40&_nkw=Silicone+Band+%E2%80%93+Garmin+Forerunner&_sacat=0&_ipg=200&_fcid=15&_pgn=1"
    res = open_url(host)
    soup = BeautifulSoup(res.text,"html.parser")
    for info in soup.select(".s-item__info clearfix")
        name = book.select("a")

if __name__=="__main__":
    main()
    print("已完成")
最佳答案
2020-8-6 15:56:18
本帖最后由 Twilight6 于 2020-8-6 15:57 编辑



你导入错误了,第一个导入应该 from bs4 import BeautifulSoup 因为你代码中直接用 BeautifulSoup 了

第二个错误你 for 循环忘记加冒号

第三个错误 BeautifulSoup 语法错误

参考代码,已经可以成功爬出网址:
import requests
from bs4 import BeautifulSoup
import re
import time
import openpyxl


def open_url(url):
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'}

    res = requests.get(url, headers=headers, timeout=500)
    return res


def main():
    host = "https://www.ebay.com.au/sch/i.html?_from=R40&_nkw=Silicone+Band+%E2%80%93+Garmin+Forerunner&_sacat=0&_ipg=200&_fcid=15&_pgn=1"
    res = open_url(host)
    soup = BeautifulSoup(res.text, "html.parser")
    for info in soup.find_all('a',class_="s-item__link"):
        url = info['href']
        print(url)

if __name__ == "__main__":
    main()
    print("已完成")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-6 15:12:15 | 显示全部楼层
用XPath它不香吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 15:32:28 | 显示全部楼层
qiuyouzhi 发表于 2020-8-6 15:12
用XPath它不香吗?

好像是也,我去学习一下,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 15:56:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-6 15:57 编辑



你导入错误了,第一个导入应该 from bs4 import BeautifulSoup 因为你代码中直接用 BeautifulSoup 了

第二个错误你 for 循环忘记加冒号

第三个错误 BeautifulSoup 语法错误

参考代码,已经可以成功爬出网址:
import requests
from bs4 import BeautifulSoup
import re
import time
import openpyxl


def open_url(url):
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'}

    res = requests.get(url, headers=headers, timeout=500)
    return res


def main():
    host = "https://www.ebay.com.au/sch/i.html?_from=R40&_nkw=Silicone+Band+%E2%80%93+Garmin+Forerunner&_sacat=0&_ipg=200&_fcid=15&_pgn=1"
    res = open_url(host)
    soup = BeautifulSoup(res.text, "html.parser")
    for info in soup.find_all('a',class_="s-item__link"):
        url = info['href']
        print(url)

if __name__ == "__main__":
    main()
    print("已完成")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 16:03:15 | 显示全部楼层
xiaolongren969 发表于 2020-8-6 15:32
好像是也,我去学习一下,感谢

感谢,感谢,我学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 16:15:34 | 显示全部楼层
xiaolongren969 发表于 2020-8-6 16:03
感谢,感谢,我学习一下



4L 代码你去运行看看,链接已经全爬出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 16:20:24 | 显示全部楼层
Twilight6 发表于 2020-8-6 16:15
4L 代码你去运行看看,链接已经全爬出来了

其实这个细心点就能检查出来,用得着来鱼C吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 17:57:42 | 显示全部楼层
陈尚涵 发表于 2020-8-6 16:20
其实这个细心点就能检查出来,用得着来鱼C吗

主要是find_all用得不熟,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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