python 自动提交和抓取网页
发布时间:2022-11-16 17:47:01
标签:python,自动提交,抓取网页
下面是用python写的,使用lxml来做html分析,从网上看到的,说是分析速度最快的哦,不过没有验证过。好了,上代码。
import urllib
import urllib2
import urlparse
import lxml.html
def url_with_query(url, values):
parts = urlparse.urlparse(url)
rest, (query, frag) = parts[:-2], parts[-2:]
return urlparse.urlunparse(rest + (urllib.urlencode(values), None))
def make_open_http():
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
opener.addheaders = [] # pretend we're a human -- don't do this
def open_http(method, url, values={}):
if method == "POST":
return opener.open(url, urllib.urlencode(values))
else:
return opener.open(url_with_query(url, values))
return open_http
open_http = make_open_http()
tree = lxml.html.fromstring(open_http("GET", "https://www.jb51.net").read())
form = tree.forms[0]
form.fields["q"] = "eplussoft"
form.action="https://www.jb51.net/search"
response = lxml.html.submit_form(form,open_http=open_http)
html = response.read()
doc = lxml.html.fromstring(html)
lxml.html.open_in_browser(doc)
恩,验证码是个大问题。还有今天看了一些百度贴吧上的东西,更是坏了心情,它的验证码是用ajax取的图片,这就更加麻烦了。不过好像现在大多数的论坛和博客的验证码都是这样的了。这样第一次抓取下来的页面就不会包含有验证码图片了,更不要说分析验证码图片了。要解决的问题还是很多的。。。


猜你喜欢
- 一、报错: 「Can't swap PDO instance while within transaction」通过查询 Larav
- 例如,有一个字典如下:>>> dic = {"name": "botoo",&qu
- 在vue中已经不像jq那样直接操作dom了,如果要指向当前选中项时,就不能再用jq的思路来做了,方法如下:当指向一个状态的时候,只让指向的状
- 这句话后面的1200是什么单位来的啊?delete from online where datediff(""s&quo
- 有时候我反问我自己,怎么不知道在Python 3中用更简单的方式做“这样”的事,当我寻求答案时,随着时间的推移,我当然发现更简洁、有效并且b
- 学习目标:学会使用windows系统安装MySQL数据库,供大家参考,具体内容如下1.打开浏览器输入SQL官网的下载地址:下载链接2.下载好
- mysql蠕虫复制,简单来说就是将查询出来的数据不断的新增插入到指定的数据表中。通常情况,mysql蠕虫复制时用来测试表压力。下面我们就结合
- 目录1、字典的定义字典和列表的区别:字典的基本使用2、循环遍历3、字符串的定义4、字符串的常用操作字符串 查找和替换字符串 文本对齐演练去除
- 阅读对象:知道什么是restful,有了解swagger或者openAPI更佳。1.什么是restfulRepresentional Sta
- pandas中包含了DataFrame和Series数据类型,分别表示二维数据结构和一维数据结构。简单的可以理解为Series为excel表
- 本文借用HTML的css语法,将样式表应用到窗口部件。这里只是个简单的例子,实际上样式表的语法很丰富。以下类似于css: StyleShee
- 1、JavaScript方法:document.getElementById("id").innerHTML; (1)实
- 我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*
- 该需求是一个真实的实战需求,如果你的公司在做题库类的系统,一定会涉及该方面的内容,所以收藏起来吧。需求简单描述如下所示:1.提取 Word(
- 这篇论坛文章详细的讲解了使用SQL Server 2008管理非结构化数据的具体方法,更多内容请参考下文:microsoft SQL Ser
- 分页显示是页面常用技术,可用下列代码来实现:<%page=Request.QueryString("page&q
- 有时候我们需要判断两个字符串内容是否相等,判断内容相等,我们用‘==',但是有时候发现print(str1)和print(str2)
- <?php/** * HOST: www.icbase.com *///set_time_limit(0);//
- 业务说明:此示例脚本作用,包含方法和逻辑:图像读取,图片尺寸读取,重置图片大小,图片等比缩放,图片拼接,图片覆盖与堆叠(子母图)图片展示:单
- 简介:在Windows下的网易邮箱大师客户端中,阅读邮件时,可以使用快捷键Delete删除邮件,然后自动跳到下一封,如果再按一次Delete