我试图删除多个页面以获取文档链接。所以我设置了一个字符串来改变页码(在下面的例子中从第1页到第6页) - 我将字符串循环到网址 - 但是当我用美丽的汤解析链接时 - 我只能获得高范围 - 即我覆盖了所有以前的页面。
代码......
from requests import get
from bs4 import BeautifulSoup
pages = [str(i) for i in range(1,6)]
for page in pages:
response = get('http://www.sedar.com/FindCompanyDocuments.do?lang=EN&page_no=' + page + '&company_search=All+%28or+type+a+name%29&document_selection=24&industry_group=A&FromDate=01&FromMonth=01&FromYear=2017&ToDate=06&ToMonth=12&ToYear=2017&Variable=DocType')
page_html = BeautifulSoup(response.text, 'html.parser')
for link in page_html.find_all('a'):
print(link.get('title'))
有6页我期待大约600个链接 - 但正如我所说,我似乎只是得到了范围的最后一部分。 (顺便说一句 - 输出链接很好而且正确我会在稍后阶段为http地址添加前缀。正如我新手一样,我猜测有一个我没见过的简单解决方案(不是因为找不到:)。
None
&docClass=24&issuerNo=00040114&issuerType=03&projectNo=02637890&docId=4133021
None
&docClass=24&issuerNo=00005620&issuerType=03&projectNo=02700766&docId=4219364
None
&docClass=24&issuerNo=00005620&issuerType=03&projectNo=02700766&docId=4219365
答案 0 :(得分:0)
你应该缩进最后3行,所以它们是迭代的一部分。在所有迭代完成后,它只处理最后一部分。
for page in pages:
response = get('http://www.sedar.com/FindCompanyDocuments.do?lang=EN&page_no=' + page + '&company_search=All+%28or+type+a+name%29&document_selection=24&industry_group=A&FromDate=01&FromMonth=01&FromYear=2017&ToDate=06&ToMonth=12&ToYear=2017&Variable=DocType')
page_html = BeautifulSoup(response.text, 'html.parser')
for link in page_html.find_all('a'):
print(link.get('title'))