抓取网页新闻(【技巧】如何用两个方法来抽去正文内容?)

优采云 发布时间: 2021-10-20 19:21

  抓取网页新闻(【技巧】如何用两个方法来抽去正文内容?)

  我主要使用了两种方法来提取正文内容。第一种方法,比如xpath、css、正则表达式、beautifulsoup,在解析新闻页面的时候,总是遇到各种莫名其妙的问题。,让人头疼不已。后面红色标的是第二种方法,主要推荐报文库

  在导师公司,需要使用重搜索引擎尽快获取想要的内容,然后建立语料库,所以我使用python的beautifulsoup和urllib抓取了一些web内容用于训练语料库。

  搜索关键词是“公司名称”,其实只需要三步即可完成。第一个是直接在百度首页搜索,然后从百度结果搜索页面上的链接中获取,第二个是在页面主页面输入结果搜索那些链接,然后抓取正文内容。三是保存获取到的正文内容,对内容进行切分。例如,如果您在正文中找到人们说过的话,则可以使用谚语和表达方式。,说起来,曾经用“”来判断,这些就不赘述了,主要是提取正文内容。

  提取链接

  通过网页的源码发现,这些超链接在标签之间(不同的网站有不同的格式)。最好用beautifulsoup提取。如果使用 urllib 提取其他 url,则不易区分。例如下图

  

  代码显示如下:

<p>#encoding=utf-8

#coding=utf-8

import urllib,urllib2

from bs4 import BeautifulSoup

import re

import os

import string

#得到url的list

def get_url_list(purl):

#连接

req = urllib2.Request(purl,headers={&#39;User-Agent&#39;:"Magic Browser"})

page = urllib2.urlopen(req)

soup = BeautifulSoup(page.read())

#读取标签

a_div = soup.find(&#39;div&#39;,{&#39;class&#39;:&#39;main&#39;})

b_div = a_div.find(&#39;div&#39;,{&#39;class&#39;:&#39;left&#39;})

c_div = b_div.find(&#39;div&#39;,{&#39;class&#39;:&#39;newsList&#39;})

links4 = []

#得到url的list

for link_aa in c_div:

for link_bb in link_aa:

links4.append(link_bb.find(&#39;a&#39;))

links4 = list(set(links4))

links4.remove(-1)

links4.remove(None)

return links4

#从list中找到想要的新闻链接

#找到要访问的下一个页面的url

def get_url(links):

url = []

url2 = &#39;&#39;

url3 = &#39;&#39;

url4 = &#39;&#39;

i = 0

for link in links:

if link.contents == [u&#39;后一天&#39;]:

continue

#上一页 和 下一页 的标签情况比较复杂

#取出“上一页”标签的url(貌似不管用)

if str(link.contents).find(u&#39;/> &#39;) != -1:

continue

#取出“下一页”标签的url

if str(link.contents).find(u&#39;

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线