python怎么抓取网页中DIV的文字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么抓取网页中DIV的文字相关的知识,希望对你有一定的参考价值。

第一张图是我抓取整个网页的代码,怎么修改把所有title的文字抓取出来?

1、编写爬虫思路:
确定下载目标,找到网页,找到网页中需要的内容。对数据进行处理。保存数据。
2、知识点说明:
1)确定网络中需要的信息,打开网页后使用F12打开开发者模式。
在Network中可以看到很多信息,我们在页面上看到的文字信息都保存在一个html文件中。点击文件后可以看到response,文字信息都包含在response中。
对于需要输入的信息,可以使用ctrl+f,进行搜索。查看信息前后包含哪些特定字段。
对于超链接的提取,可以使用最左边的箭头点击超链接,这时Elements会打开有该条超链接的信息,从中判断需要提取的信息。从下载小说来看,在目录页提取出小说的链接和章节名。
2)注意编码格式
输入字符集一定要设置成utf-8。页面大多为GBK字符集。不设置会乱码。
参考技术A

使用 BeautifulSoup  进行解析 html,需要安装 BeautifulSoup

#coding=utf-8

import urllib2
import socket
import httplib
from bs4 import BeautifulSoup

UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'

def downloadPage(url):

  try:
    
    opener = urllib2.build_opener()
    
    headers =  'User-Agent': UserAgent 
    
    req = urllib2.Request(url = url, headers = headers)
    
    resp = opener.open(req, timeout = 30)
    result = resp.read()

    return result
      
  except urllib2.HTTPError, ex:
    print ex
    return ''
  except urllib2.URLError, ex:
    print ex
    return ''
  except socket.error, ex:
    print ex
    return ''
  except httplib.BadStatusLine, ex:
    print ex
    return ''


if __name__ == '__main__':

content = downloadPage("这填douban的地址")

#print content

soap = BeautifulSoup(content, 'lxml')

lst = soap.select('ol.grid_view li')

for item in lst:
    # 电影详情页链接
    print item.select('div.item > div.pic a')[0].attrs['href']

    # 图片链接
    print item.select('div.item > div.pic a img')[0].attrs['src']

    # 标题
    print item.select('div.item > div.info > div.hd > a > span.title')[0].get_text()

    # 评分
    print item.select('div.item > div.info > div.bd > div.star > span.rating_num')[0].get_text()
    print '-------------------------------------------------------------------------'

本回答被提问者和网友采纳
参考技术B 最简单的还是用DW,贴到里面,然后就能做了,也不是很难追问

我现在学的又不是DW,你和我说DW干啥?

python怎样抓取网页中的文字和数字数据

以下代码在 py2 下运行通过:

import urllib2

req = urllib2.Request('https://www.baidu.com/')  # 创建一个 Requset 对象
response = urllib2.urlopen(req)  # 调用 urlopen
the_page = response.read()  # 返回一个 response 对象 在 response 中调用 read()
print the_page


运行效果:

参考技术A 通过xpath路径来定位到要提取的元素,在路径后面加上/text()可以提取该元素的文本,如果是要提取属性值,在路径后面加上/@属性名就可以。如果要只采集数字或者文字,可以使用正则来实现。比如数字的正字表达式:[0-9]+。希望可以帮到题主

以上是关于python怎么抓取网页中DIV的文字的主要内容,如果未能解决你的问题,请参考以下文章

用Python 抓取的UTF8网页无法decode('utf-8')

Python 遍历网页代码抓取文字和图片

python爬虫抓取到的数据用网页打开时是乱码,怎么解决

puppeteer + nodejs 抓取网页内容

请教网页里的特定数据怎么抓取?

python怎么自动抓取网页上每日天气预报