简介:提取网页保存到txt文件中 + 解析txt文件内容,取出内容

from urllib import request
import re.json url="http://www.163.com"
response = request.urlopen(url).read().decode("gbk")
# 写入一个txt文件
with open("163/163.txt","w",encoding="gbk")as f:
f.write(str(response))
# 读取,用json序列化后遍历出来,取出键里面的值
with open("163/163.txt",'r+',encoding="utf-8")as f:
content=f.read()
c1=content.replace(" ",'').replace("\n",'') #去掉空格、换行
c2="["+c1+"]"
cc=json.loads.(c2) #序列化
for i in cc:
print(x['title']) #取出每个项里面“title”键的值
print(x['docurl'])

简介:提取美团链接保存在一个txt文件中

#coding=utf-8
from urllib import request
from bs4 import BeautifulSoup
req=request.urlopen("http://hotel.meituan.com/xian/")
content=req.read().decode("utf8")
bsObj=BeautifulSoup(content,"html.parser")
pcontent=bsObj.findAll("a",{"class":"poi-title"}) i=1
with open("meituan/url.txt","a+",encoding="utf8") as f:
for x in pcontent:
f.write(x['href']+"\n") #取出 标签 里面的信息
f.write(x.get_text()) #取出正文
print("第"+'int(%s)'%(i)+"条url")
i+=1

范例:功能实现后提高代码质量

#coding=utf-8
#获取当前地址下的所有酒店url地址
from urllib import request,error
from bs4 import BeautifulSoup
import json
for page in range(3):
url="https://ihotel.meituan.com/hbsearch/HotelSearch?utm_medium=pc&version_name=999.9&cateId=20&attr_28=129&uuid=12B729E22135402D5CBC1432A179A735CF81DF50626153919EC2C66D46DCB233%401517811001478&cityId=42&offset="+str(page*20)+"&limit=20&startDay=20180205&endDay=20180205&q=&sort=defaults"
try:
req=request.urlopen(url)
content=req.read().decode("utf8")
## bsObj=BeautifulSoup(content,"html.parser")
## pcontent=bsObj.findAll("a",{"class":"poi-title"})
content_dict=json.loads(content)
with open("meituan/url.txt","a+",encoding="utf8") as f:
for x in content_dict['data']['searchresult']:
print(x['poiid'])
hotel_url="http://hotel.meituan.com/%s/"%x['poiid']
f.write(hotel_url+"\n")
except error.URLError as e:
print(e.reason)

urllib添加代理IP

# -*- coding: UTF-8 -*-
from urllib import request if __name__ == "__main__":
#访问网址
url = 'http://2017.ip138.com/ic.asp'
#url = 'http://www.whatismyip.com.tw'
#这是代理IP
proxy = {'http':'113.124.226.174:808'}
#创建ProxyHandler
proxy_support = request.ProxyHandler(proxy)
#创建Opener
opener = request.build_opener(proxy_support)
#添加UserAngent
opener.addheaders = [
('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'),
('Host','www.whatismyip.com.tw') #这个网站能检测IP地址,所以用这个作为示例
]
#安装OPener
request.install_opener(opener)
#使用自己安装好的Opener
response = request.urlopen(url)
#读取相应信息并解码
html = response.read().decode("gbk")
#打印信息
print(html)

Python_爬虫_urllib解析库的更多相关文章

  1. Python爬虫【解析库之beautifulsoup】

    解析库的安装 pip3 install beautifulsoup4 初始化 BeautifulSoup(str,"解析库") from bs4 import BeautifulS ...

  2. Python爬虫【解析库之pyquery】

    该库跟jQuery的使用方法基本一样  http://pyquery.readthedocs.io/ 官方文档 解析库的安装 pip3 install pyquery 初始化 1.字符串初始化 htm ...

  3. python爬虫三大解析库之XPath解析库通俗易懂详讲

    目录 使用XPath解析库 @(这里写自定义目录标题) 使用XPath解析库 1.简介   XPath(全称XML Path Languang),即XML路径语言,是一种在XML文档中查找信息的语言. ...

  4. python爬虫之解析库Beautiful Soup

    为何要用Beautiful Soup Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式, 是一个 ...

  5. python爬虫之解析库正则表达式

    上次说到了requests库的获取,然而这只是开始,你获取了网页的源代码,但是这并不是我们的目的,我们的目的是解析链接里面的信息,比如各种属性  @href  @class span  抑或是p节点里 ...

  6. 爬虫之解析库-----re、beautifulsoup、pyquery

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

  7. 爬虫之解析库BeautifulSoup

    介绍 Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等 ...

  8. 爬虫之解析库Xpath

    简介 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起初XPat ...

  9. 爬虫之解析库pyquery

    初始化 安装: pip install pyquery 字符串的形式初始化 html = """ <html lang="en"> < ...

随机推荐

  1. js实现自定义弹窗

    众所周知,浏览器自带的原生弹窗很不美观,而且功能比较单一,绝大部分时候我们都会按照设计图自定义弹窗或者直接使用注入layer的弹窗等等.前段时间在慕课网上看到了一个自定义弹窗的实现,自己顺便就学习尝试 ...

  2. lumen发送邮件配置

    composer.json 增加 "illuminate/mail":"5.6"composer update -vvvconfig 目录新建mail.php ...

  3. BGP - 不同 AS 间运行的协议

    在之前介绍的网络场景中,ERGRP,OPSF,RIP 等都是运行在单独一个 AS(自治系统之间).这些协议统称为 IGP - 内部网关协议 ,目的主要是为自治系统内发现邻居和计算路由,从而找到合适的路 ...

  4. CSDN的Markdown编辑器实用技巧(傻瓜式教程)

    markdown编辑器被很多人声称是可以取代word的文字编辑器,其优点我们在这就不再过多赘述了,但对于一些初次接触的人来说,或多或少都有还些不适应,其主要原因在于一些常见的功能突然不知道怎么实现,所 ...

  5. Django折腾日记(django2.0)

    新建项目 django-admin startproject mysite 运行 python manage.py runserver 创建一个应用 python manage.py startapp ...

  6. git学习(四) git log操作

    git log操作 log命令的作用:用于查看git的提交历史: git log命令显示的信息的具体含义: commit SHA-1 校验和  commit id Author 作者跟邮箱概要信息 D ...

  7. C++类模板声明与定义为何不能分开

    我们用C++写类的时候,通常会将.cpp和.h文件分开写,即实现和声明分开写了:但在C++的类模板中,这种写法是错误的. 在<C++编程思想>的第16章的"16.3模板语法&qu ...

  8. Hadoop 指令

    date: 2018-04-30 09:07:56 updated: 2018-04-30 09:07:56 1.ls hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件 had ...

  9. Redis基础(二)数据库

    数据库 Redis服务器的所有数据库都保存在redisServer.db数组中,而数据库的数量则由redisServer.dbnum属性保存. struct redisServer { // .. / ...

  10. python接口自动化测试遇到的问题及解决方案

    工作中xml中的某一个字段是全网唯一,这就需要进行参数化处理.此次对这一个字段进行参数化处理引用了random模块和index()函数.代码如下: #!/usr/bin/python # -*- co ...