鱼C论坛

 找回密码
 立即注册
查看: 674|回复: 2

[已解决]学校的python爬虫作业 抓取学校图书馆馆藏书的书名目录

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

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

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

x
本帖最后由 skyline2333 于 2020-6-10 18:57 编辑

第一次提问
本人大一经济学专业 学校python课作业
题目:写程序,检索浙江财经大学图书馆自己专业的图书目录,显示图书检索目录并将目录保存到文本文件book.txt中
网址:http://opac.zufe.edu.cn:8080/browse/cls_browsing.php
目前写不下去的代码:
import requests
from bs4 import BeautifulSoup
url='http://opac.zufe.edu.cn:8080/browse/cls_browsing.php'
response=requests.get(url)
soup=BeautifulSoup(response.text, 'html.parser')
items=soup.findAll('h3')
print(response.text)
for itm in items:
    title_0=itm.find('h3').find('strong').find('a').text
    print(title_0)
    #f=open('C:\\Users\\kingk\\Desktop\\file.txt','a',encoding='utf-8')
    #f.write(title)
问题:某一专业的书要点一下左边的按钮才会显示 用“查看”直接找有“<!-- 中图分类浏览 -->”  好像是html的body里面又有一层html和title和body啥的
'''
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="../tpl/css/style.css">
<script src="../tpl/js/jquery.js"></script>

</head>
'''
里面一层的标签直接用.find好像找不到 换了好多次都不行 是不是要多次请求还是其他什么方法
请大佬救救孩子
最佳答案
2020-6-11 17:13:28
  1. import requests
  2. import html
  3. from lxml import etree

  4. url = 'http://opac.zufe.edu.cn:8080/browse/cls_browsing_tree.php?s_doctype=all&cls=F&lvl=1#nodeF'
  5. headers = {'user-agent': 'firefox'}
  6. r = requests.get(url, headers=headers)
  7. data = html.unescape(r.text)
  8. with open('r.txt', 'w') as f:
  9.     f.write(data)
  10. html = etree.HTML(data)
  11. result = html.xpath('//text()')
  12. final = []
  13. for item in result:
  14.     if item.startswith('F'):
  15.         final.append(item)
  16. print(final)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-11 17:13:28 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. import html
  3. from lxml import etree

  4. url = 'http://opac.zufe.edu.cn:8080/browse/cls_browsing_tree.php?s_doctype=all&cls=F&lvl=1#nodeF'
  5. headers = {'user-agent': 'firefox'}
  6. r = requests.get(url, headers=headers)
  7. data = html.unescape(r.text)
  8. with open('r.txt', 'w') as f:
  9.     f.write(data)
  10. html = etree.HTML(data)
  11. result = html.xpath('//text()')
  12. final = []
  13. for item in result:
  14.     if item.startswith('F'):
  15.         final.append(item)
  16. print(final)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 11:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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