python用通用代码爬取,没有反应,该如何处理?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python用通用代码爬取,没有反应,该如何处理?相关的知识,希望对你有一定的参考价值。
>>> import requests>>> def gethtmlText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() #如果状态码不是200,将引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: return "产生异常" if __name__ == '__main__': url = "和谐和谐和谐" print(getHTMLText(url))
目前大概的看,有两处问题。第一处,你的try语句里的except语句后面没有跟上异常类(比如TypeError),所以根本没起到捕获异常的作用。
第二处,这是在Python的交互式界面,不需要使用if __name__语句判断当前是否作为主模块调用,这种语法是在编译器里有的。
所以你定义完getHTMLtext函数后,按回车键,另起一行,从【>>>】开始,直接使用命令getHTMLtext('http://www.baidu.com')就调用函数就行
你试试看还行不行,如果还有问题再调整追问
谢谢
参考技术A 你要调用这个getHTMLText方法才行啊追问怎么调用呀,我大一新生自学的.
追答哦哦谢谢,弄出来了
追答.......
追问不好意思呀
c#字符串中拼接参数该如何处理?
在C#中执行如下字符串形式的数据库插入命令
"insert into 表1 (字段1, 字段2, 字段3) values (值1,值2,值3);"
现在想把字段与字段值用参数来代替,即:
字段1——参数1
字段2——参数2
字段3——参数3
……
请问该 如何处理 这些参数呢?
publice void test(string a,int b,string c)//a,b,c为传进来的3个参数,参数类型由你自己按需求定义
"insert into 表1 (字段1, 字段2, 字段3) values (a,b,c);"//这里的值用参数替代
这个方法我定义的是void,说明无返回值,如果你需要返回值,比如要返回个整形,那就将void改成int即可 参考技术A SqlConnection conn = new SqlConnection("这是连接字符串");//实例化连接资源
//抛砖引玉吧。自定义方法,第一个是值1,第二个是值1的值,第三个是值2,第四个是值2的值。没时间想了,要下班了,这里处理得不好,参数太长了。写数据库操作命令的时候要注意下格式。不过你可以把数据类型和数据长度全部传进去。可以考虑把这么多参数封装到一个实体类中,然后传参的时候传这个实体类列表进去。方法里面用循环取这个实体类
public void test(string paraname1,string paravalue1,string paraname2,string paravalue2)
conn.Open();
SqlCommand cmd = new SqlCommand("这是插入数据库指令", conn);
cmd.Parameters.Add(paraname1, SqlDbType.Char, 50).Value = paravalue1;
cmd.Parameters.Add(paraname2, SqlDbType.VarChar, 100).Value = paravalue2;
cmd.ExecuteNonQuery();
conn.Close();
参考技术B public int add(object obj1, object obj2, object obj3)
/*
* 或者新建一个参数类
* public class ObjAttr
*
* //参数类型自己改
* private object obj1;
*
* public object Obj1
*
* get return obj1;
* set obj1 = value;
*
*
* //other args ...
*
*
* 方法声明改为public int add(ObjAttr objAttr)
* 参数调用 改成 new SqlParameter("@par1",objAttr.Obj1),
*/
string sqlConString = "data source...";
using (SqlConnection con = new SqlConnection(sqlConString))
string sql = "insert into 表1 (字段1, 字段2, 字段3) values (@par1,@par2,@par3);
SqlParameter[] pars = new[]
new SqlParameter("@par1",obj1),
new SqlParameter("@par2",obj2),
new SqlParameter("@par3",obj3)
;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.Parameters.AddRange(pars);
int val = cmd.ExecuteNonQuery();
return val;
参考技术C 如果传进来这三个参数(参数1,参数二,参数三),那么你的sql语句就要写成
"insert into 表1 (字段1, 字段2, 字段3) values (‘“+参数1+”’,'"+参数2+"','"+参数3+"')"; 参考技术D 拼接方法 wisecn 已经给出了, 不过 非常不建议SQL语句采用拼接的方式。
你应该使用 SqlParameter来赋值参数。
以上是关于python用通用代码爬取,没有反应,该如何处理?的主要内容,如果未能解决你的问题,请参考以下文章