鱼C论坛

 找回密码
 立即注册
查看: 919|回复: 1

[已解决]用bs4模块爬取数据得不到我想要的结果!!!麻烦帮我找一下原因!!

[复制链接]
发表于 2021-9-5 22:05:09 | 显示全部楼层 |阅读模式
1鱼币
我想得到的数据是  图片中 被标记的内容(也就是 上面的地点 :北京,上海,.....等)
  1. # 1.拿到页面源代码
  2. # 2.使用bs4进行解析。拿到数据
  3. import requests
  4. from bs4 import BeautifulSoup

  5. url = "https://movie.douban.com/cinema/nowplaying/yibin/"
  6. headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0"}
  7. resp = requests.post(url,headers=headers)
  8. # 解析数据
  9. #1.把页面源代码交给 BeautifulSoup 进行处理,生成 bs 对象
  10. # page = BeautifulSoup(resp.text) #这样写会出现警告,因为 它会把程序当成 HTML 来处理,可能会有一些问题。

  11. page = BeautifulSoup(resp.text,"html.parser") #指定html解析器    解决方法:就是你告诉它 这程序就是 html 就行了,它就不会乱猜了。
  12. # 2.从bs 对象中查找数据
  13. # find(标签,属性=值):  谁第一个被找到,就不找了,就一个数据
  14. # find_all(标签,属性=值): 会吧你想要的数据都找给你,是一堆的数据
  15. # table = page.find('li',class_="poster") #class 是python的关键字   可以在属性前面加 _ 下划线,来区别python中的关键字和html中的属性。
  16. table = page.find('div',attrs={'class':'cities-list-item hot'}) #和上面一行的,一样的意思,此时可以避免python中的
  17. # trs = table.find_all('span')
  18. lst=[]
  19. for tr in table:
  20.     tds = tr.find("a")
  21.     lst.append(tds)

  22. print(lst)
复制代码




得到的每个数据都出现了 -1 这是什么原因啊??我不太目标。就是因为出现了那个-1 这条代码 lst.append(tds.text)  是回报错的!!!

这是列表中的数据(也就是最后的得到的结果):[-1, <a class="city-item" href="javascript:;" id="108288" uid="beijing">北京</a>, -1, <a class="city-item" href="javascript:;" id="108296" uid="shanghai">上海</a>, -1, <a class="city-item" href="javascript:;" id="118281" uid="guangzhou">广州</a>, -1, <a class="city-item" href="javascript:;" id="118282" uid="shenzhen">深圳</a>, -1, <a class="city-item" href="javascript:;" id="118318" uid="chengdu">成都</a>, -1, <a class="city-item" href="javascript:;" id="118172" uid="hangzhou">杭州</a>, -1, <a class="city-item" href="javascript:;" id="118254" uid="wuhan">武汉</a>, -1, <a class="city-item" href="javascript:;" id="108309" uid="chongqing">重庆</a>, -1, <a class="city-item" href="javascript:;" id="118159" uid="nanjing">南京</a>, -1, <a class="city-item" href="javascript:;" id="118237" uid="zhengzhou">郑州</a>, -1, <a class="city-item" href="javascript:;" id="118371" uid="xian">西安</a>, -1, <a class="city-item" href="javascript:;" id="118163" uid="suzhou">苏州</a>, -1, <a class="city-item" href="javascript:;" id="118267" uid="changsha">长沙</a>, -1, <a class="city-item" href="javascript:;" id="108289" uid="tianjin">天津</a>, -1, <a class="city-item" href="javascript:;" id="118200" uid="fuzhou">福州</a>, -1, <a class="city-item" href="javascript:;" id="118183" uid="hefei">合肥</a>, -1, <a class="city-item" href="javascript:;" id="118220" uid="jinan">济南</a>, -1, <a class="city-item" href="javascript:;" id="118123" uid="shenyang">沈阳</a>, -1, <a class="city-item" href="javascript:;" id="118221" uid="qingdao">青岛</a>, -1, <a class="city-item" href="javascript:;" id="118146" uid="haerbin">哈尔滨</a>, -1, <a class="city-item" href="javascript:;" id="118201" uid="xiamen">厦门</a>, -1, <a class="city-item" href="javascript:;" id="118174" uid="wenzhou">温州</a>, -1, <a class="city-item" href="javascript:;" id="118124" uid="dalian">大连</a>, -1, <a class="city-item" href="javascript:;" id="118297" uid="dongguan">东莞</a>, -1, <a class="city-item" href="javascript:;" id="118173" uid="ningbo">宁波</a>, -1]
最佳答案
2021-9-5 22:05:10
  1. import requests
  2. from bs4 import BeautifulSoup

  3. url = "https://movie.douban.com/cinema/nowplaying/yibin/"
  4. headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0"}
  5. r = requests.get(url, headers=headers)
  6. page = BeautifulSoup(r.text, "html.parser")
  7. result = page.find_all('a', attrs={'class': 'city-item'})
  8. for i in result:
  9.     print(i.string)
复制代码
屏幕截图 2021-09-05 215258.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-5 22:05:10 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. from bs4 import BeautifulSoup

  3. url = "https://movie.douban.com/cinema/nowplaying/yibin/"
  4. headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0"}
  5. r = requests.get(url, headers=headers)
  6. page = BeautifulSoup(r.text, "html.parser")
  7. result = page.find_all('a', attrs={'class': 'city-item'})
  8. for i in result:
  9.     print(i.string)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 10:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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