Pau*_*ank 2 python string urllib2
编辑:(已解决)当我从我的文件中读取值时,新行字符将被添加到结尾.(\n)这将在此时拆分我的请求字符串.我认为这与我如何将值保存到文件中的方式有关.非常感谢.
我有以下代码:
results = 'http://www.myurl.com/'+str(mystring)
print str(results)
request = urllib2.Request(results)
request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')
opener = urllib2.build_opener()
text = opener.open(request).read()
Run Code Online (Sandbox Code Playgroud)
这是一个循环.循环运行几次后str(mystring)更改为给出一组不同的结果.我可以循环脚本不变多次,我喜欢保持STR(MyString的)的价值,但我每次改变STR(MyString的)的值时,我得到一个错误说没有给主机时,代码试图打造的揭幕战.
opener = urllib2.build_opener()
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
TIA,
保罗.
编辑:
这里有更多代码......
import sys
import string
import httplib
import urllib2
import re
import random
import time
def StripTags(text):
finished = 0
while not finished:
finished = 1
start = text.find("<")
if start >= 0:
stop = text[start:].find(">")
if stop >= 0:
text = text[:start] + text[start+stop+1:]
finished = 0
return text
mystring="test"
d={}
with open("myfile","r") as f:
while True:
page_counter=0
print str(mystring)
try:
while page_counter <20:
results = 'http://www.myurl.com/'+str(mystring)
print str(results)
request = urllib2.Request(results)
request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')
opener = urllib2.build_opener()
text = opener.open(request).read()
finds = (re.findall('([\w\.\-]+'+mystring+')',StripTags(text)))
for find in finds:
d[find]=1
uniq_emails=d.keys()
page_counter = page_counter +1
print "found this " +str(finds)"
random.seed()
n = random.random()
i = n * 5
print "Pausing script for " + str(i) + " Seconds" + ""
time.sleep(i)
mystring=next(f)
except IOError:
print "No result found!"+""
Run Code Online (Sandbox Code Playgroud)
我找到了答案.它如下......
mystring的值是从文件中读入的.在我编写的脚本中,我用"w"代替"wb"打开文件.
文件中的每一行都以换行符"/ n"结尾.
当mystring被添加到字符串请求时,在请求字符串的中间创建了新行.[1]
这在我的代码中永远不会显而易见,因为我将其更改为在此处发布,以隐藏我用于获取结果的真实网址.[2]
我的实际网址看起来更像......
Myurl.com/mystring/otherstuff/page_counter/morestuff.htm
从文件中读取的/ n拼接了我的网址并给出了urllib问题......
[1]我使用的是Windows.它为文本文件添加了许多看不见的东西.如果我用"wb"而不是"w"打开要写入的文件,那么内容将被写入而没有看不见/ n
[2]总是发布你的完整代码孩子.stackoverflow的好人无法帮助你,除非他们能看到你在做什么.....
非常感谢所有人,我希望这可以在某些方面帮助某人.
保罗.
| 归档时间: |
|
| 查看次数: |
13469 次 |
| 最近记录: |