鱼C论坛

 找回密码
 立即注册
查看: 1607|回复: 5

有关网络爬虫,正则表达式没有出错,控制台没有报错,但没有输出结果

[复制链接]
发表于 2018-2-4 11:07:21 | 显示全部楼层 |阅读模式

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

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

x
源程序:
import requests
from bs4 import BeautifulSoup
from requests.exceptions import RequestException
import re


def get_one_page(url):                   #抓取网页
    try:
        response = requests.get(url)
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None


def parse_one_page(html):
        pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'
                             '.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
                             '.*?integar">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>', re.S)
        items = re.findall(pattern, html)
        print(items)


def main():
    url = 'http://maoyan.com/board/4'
    html = get_one_page(url)
    parse_one_page(html)


if __name__ == '__main__':
    main()


附上网站url以及需要爬取的网站php代码:(需要获取dd中的图片url,名字,主演,放映时间,评分等信息)
<dd>
                        <i class="board-index board-index-10">10</i>
    <a href="/films/2760" title="魂断蓝桥" class="image-link" data-act="boarditem-click" data-val="{movieId:2760}">
      <img src="//ms0.meituan.net/mywww/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="http://p0.meituan.net/movie/12/8506449.jpg@160w_220h_1e_1c" alt="魂断蓝桥" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/2760" title="魂断蓝桥" data-act="boarditem-click" data-val="{movieId:2760}">魂断蓝桥</a></p>
        <p class="star">
                主演:费雯·丽,罗伯特·泰勒,露塞尔·沃特森
        </p>
<p class="releasetime">上映时间:1940-05-17(美国)</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">2</i></p>        
    </div>

      </div>
    </div>

                </dd>
希望大神可以指导一下,哪里报错以及以后遇到这种情况可以用debug之类的方法解决吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-4 16:18:23 | 显示全部楼层

回帖奖励 +4 鱼币

BeautifulSoup这么好用干嘛不用,我感觉正则表达式可读太差
  1. def parse_one_page(html):
  2.         soup = BeautifulSoup(html,'html.parser')
  3.         body=soup.find('dl',{'class':'board-wrapper'})
  4.         p = r'http://.*\.jpg.*'
  5.         for k in body.find_all('dd'):
  6.             movies =k.find('img', {'data-src': re.compile(p)})
  7.             star = k.find('p',{'class':'star'})
  8.             time = k.find('p',{'class':'releasetime'})
  9.             core = k.find('p',{'class':'score'})
  10.             print(movies['alt'])
  11.             print(movies['data-src'],end='')
  12.             for n in star.get_text().split(' '):
  13.                 if n !='':
  14.                     print(n,end='')
  15.             print(time.get_text())
  16.             print('评分:'+core.get_text())
  17.             print("'''''''''''''''''''''''''''''''''''''")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 20:38:06 | 显示全部楼层
mintaka 发表于 2018-2-4 16:18
BeautifulSoup这么好用干嘛不用,我感觉正则表达式可读太差

大哥能稍微加一点注释吗。。。。我刚学看不太懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 20:38:35 | 显示全部楼层
donkeylord 发表于 2018-2-7 20:38
大哥能稍微加一点注释吗。。。。我刚学看不太懂

万分感谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 20:39:24 | 显示全部楼层
donkeylord 发表于 2018-2-7 20:38
大哥能稍微加一点注释吗。。。。我刚学看不太懂

拜托了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-8 12:55:30 | 显示全部楼层
donkeylord 发表于 2018-2-7 20:38
大哥能稍微加一点注释吗。。。。我刚学看不太懂

就是找到特定的tag,你去看看BeautifulSoup的用法吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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