python爬取数据后生成表格

阅读: 评论:0

python爬取数据后生成表格

python爬取数据后生成表格

#coding=utf-8

import urllib2

import re

import xlwt

import smtplib

import random

import time

from email.mime.multipart import MIMEMultipart

from import MIMEText

from email.mime.application import MIMEApplication

# 1.先获取整个页面信息

# Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。

# 首先,我们定义了一个getHtml()函数:

# urllib.urlopen()方法用于打开一个URL地址。

# read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。

#

# #添加头部header

# Agent_list = [ ]

# user_agent = random.choice(Agent_list)

# page.add_header('User-Agent',user_agent)

#

#

# #定义opener,设置代理IP

# ip_list = []

# httpproxy_handler = urllib2.ProxyHandler({'http':random.choice(ip_list)})

# opener = urllib2.build_opener(httpproxy_handler)

# urllib2.install_opener(opener)

def getHtml(url):

Agent_list = ['Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36',

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",

"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"

]

ip_list = ['223.198.16.58:9999','110.244.12.96:9999','61.145.8.103:9999','223.198.19.214:9999','112.85.125.111:9999']

user_agent = random.choice(Agent_list)

httpproxy_handler = urllib2.ProxyHandler({'http':random.choice(ip_list)})

opener = urllib2.build_opener(httpproxy_handler)

urllib2.install_opener(opener)

page = urllib2.Request(url)

page.add_header('User-Agent',user_agent)

response = urllib2.urlopen(page)

html = ad()

return html

# 2.筛选页面中想要的数据

# 我们又创建了geturl()函数,用于在获取的整个页面中筛选需要的视频连接。

# re模块主要包含了正则表达式:

# r"

# 正则表达式输出的是括号()里面的内容。

#

# 正则表达式示例:r'(.*) are (.*?) .*'

# 首先,这是一个字符串,前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。

# 但是这个字符串里没有反斜杠,所以这个 r 可有可无。

# . :匹配一个除了换行符任意一个字符

# ^ :只有后面跟的字符串在开头,才能匹配上

# * :它控制它前面那个字符,他前面那个字符出现0到多个都可以匹配上

# + :匹配前面那个字符1到多次

# ?:匹配前面那个字符0到1个,多余的只匹配一个

# (.*) 第一个匹配分组,.* 代表匹配除换行符之外的所有字符。

# (.*?) 第二个匹配分组,.*? 后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符

# 后面的一个 .* 没有括号包围,所以不是分组,匹配效果和第一个一样,但是不计入匹配结果中。

#

# re.search("com","COM",re.I).group()

# re.I 使匹配对大小写不敏感

# re.L 做本地化识别(locale-aware)匹配

# re.M 多行匹配,影响^和$

# re.S 使.匹配包括换行在内的所有字符

#

# 表示超链接

# repile() 可以把正则表达式编译成一个正则表达式对象.

# re.findall() 方法读取html 中包含 urlre(正则表达式)的数据。

# 运行脚本将得到整个页面中包含图片的URL地址。

#

# reg = r"
并输出括号里面的内容

# 得到 /html/gndy/jddy/20160320/50523.html'>IMDB评分8分左右影片400余部

# 可以用 reg = r"

# 可以用 reg = r"

# down_addr = '' + down_page[j] down_page无法显示汉字,所以做了下转化

#

# for i in range (1,20) 查询需要的条记录,从1开始的原因是因为第0个记录不是需要的数据。

def geturl(html):

reg = r"

本文发布于:2024-02-03 06:52:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170691435849360.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:表格   数据   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23