我是靠谱客的博主 完美铅笔,最近开发中收集的这篇文章主要介绍python bs4 提取网页表格里某个词_Python获取网页指定内容(BeautifulSoup工具的使用方法)...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

urillb2在python3中的变化

在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error。

在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse

在Pytho2.x中使用import urlparse——-对应的,在Python3.x中会使用import urllib.parse。

在Pytho2.x中使用import urlopen——-对应的,在Python3.x中会使用import urllib.request.urlopen。

在Pytho2.x中使用import urlencode——-对应的,在Python3.x中会使用import urllib.parse.urlencode。

在Pytho2.x中使用import urllib.quote——-对应的,在Python3.x中会使用import urllib.request.quote。

在Pytho2.x中使用cookielib.CookieJar——-对应的,在Python3.x中会使用http.CookieJar。

在Pytho2.x中使用urllib2.Request——-对应的,在Python3.x中会使用urllib.request.Request。

————————————————

版权声明:本文为CSDN博主「mxinye」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

#coding:utf-8

'''''

@author: jsjxy

'''

import urllib2

import re

from bs4 import BeautifulSoup

from distutils.filelist import findall

page = urllib2.urlopen('http://movie.douban.com/top250?format=text')

contents = page.read()

#print(contents)

soup = BeautifulSoup(contents,"html.parser")

print("豆瓣电影TOP250" + "n" +" 影片名 评分 评价人数 链接 ")

for tag in soup.find_all('div', class_='info'):

# print tag

m_name = tag.find('span', class_='title').get_text()

m_rating_score = float(tag.find('span',class_='rating_num').get_text())

m_people = tag.find('div',class_="star")

m_span = m_people.findAll('span')

m_peoplecount = m_span[3].contents[0]

m_url=tag.find('a').get('href')

print( m_name+" " + str(m_rating_score) + " " + m_peoplecount + " " + m_url )

问题:urllib.error.HTTPError: HTTP Error 418:

问题描述:当我使用Python的request爬取网页时返回了http状态码为418,

错误描述:经过网上查询得知,418的意思是被网站的反爬程序返回的,网上解释为,418 I'm a teapot

The HTTP 418 I'm a teapot client error response code indicates that the server refuses to brew coffee because it is a teapot. This error is a reference to Hyper Text Coffee Pot Control Protocol which was an April Fools' joke in 1998.

翻译为:HTTP 418 I'm a teapot客户端错误响应代码表示服务器拒绝煮咖啡,因为它是一个茶壶。这个错误是对1998年愚人节玩笑的超文本咖啡壶控制协议的引用。

解决办法:当时我用的是urllib的request,我感觉这个库应该有点久了,所以换了requests这个库,然后再次请求,并添加了header的信息就可以了,如果不加程序放回的是空,没有结果,运行不会错.

使用request:

from urllib import request

r = request.urlopen(url)

html = r.read().decode("utf-8")

print(html)

使用requests并添加headers信息后:

import requests

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}

r = requests.get(url,headers=headers)

html = r.text

print(html)

正确的代码如下:

#!/usr/bin/env python

# coding:utf-8

import requests

import re

from bs4 import BeautifulSoup

from distutils.filelist import findall

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}

page = requests.get('http://movie.douban.com/top250?format=text',headers=headers)

contents = page.text

# print(contents)

soup = BeautifulSoup(contents, "html.parser")

print("豆瓣电影TOP250" + "n" + " 影片名 评分 评价人数 链接 ")

for tag in soup.find_all('div', class_='info'):

# print tag

m_name = tag.find('span', class_='title').get_text()

m_rating_score = float(tag.find('span', class_='rating_num').get_text())

m_people = tag.find('div', class_="star")

m_span = m_people.findAll('span')

m_peoplecount = m_span[3].contents[0]

m_url = tag.find('a').get('href')

print(m_name + " " + str(m_rating_score) + " " + m_peoplecount + " " + m_url)

最后

以上就是完美铅笔为你收集整理的python bs4 提取网页表格里某个词_Python获取网页指定内容(BeautifulSoup工具的使用方法)...的全部内容,希望文章能够帮你解决python bs4 提取网页表格里某个词_Python获取网页指定内容(BeautifulSoup工具的使用方法)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部